それではgrepやsedをする必要がありますか?

それではgrepやsedをする必要がありますか?

今について質問がありましたgrep。項目が多いテキストファイルがありますが、特定の数字だけを印刷したいと思います。これは私のテキストですが、印刷したいのですが700

Dato: 22-02-2018
Mødt ind: 700
Gået hjem: 1600
Overtid:

ベストアンサー1

ファイルの構造は簡単で、レコードを簡単に区別することができ、そのうちの1つの値が必要なので、以下を使用するのが最も簡単ですawk

awk '/^Mødt ind:/ { print $NF }' file

これは/^Mødt ind:/、textで始まるすべての行に対して次のブロックが実行されることを意味しますMødt ind:。このブロックは、$NF行の最後のフィールド値であるを印刷します(NF最後のフィールドのフィールド番号であり、$フィールド値はその前に配置されます)。


標準sed:

sed -n 's/^Mødt ind: \(.*\)/\1/p' file

これは同じ行マッチを実行しますawkが、その行の内容をコロンとスペースの後に続くものに置き換えます。通常の出力は無効-nになり、式によって変更された行のみが出力されます。

awkより読みやすく、理解/修正が簡単なので、まだ解決策を探しています。

おすすめ記事