特定の文字から行を切り取る方法

特定の文字から行を切り取る方法

私のファイルには次のような行がたくさんあります。

word_word_word 0 word_word
word_word_word 1 wordwordword
word word word word 0 word word word word
word 2 word_word_word word word
word word_word 3 word

このファイルをキャプチャして次のような出力を取得したいと思います。

word_word_word 0
word_word_word 1
etc...

/awk/または他の行を切り取り、最初のバイトから最初の1桁まですべてを表示するにはどうすればよいですか?

ありがとうございます!

ベストアンサー1

grepを使用してください:

grep -oP '^.*?\s[0-9](\s|$)' file

この-oオプションは、grepに一致するものだけを印刷するように指示します。

パターンは以下を探しています。

  • 行の始まり^
  • 以下は重複コンテンツです(欲はありません)。.*?
  • その後にスペースがあります\s
  • その後、0から9の間の単一の数字が続きます。[0-9]
  • 最後に、単一の数字の後にスペースまたは行末が続く必要があります。(\s|$)

おすすめ記事