テキストから特定の単語を取得する

テキストから特定の単語を取得する

~へFILE.txt

Interval: 5s
Interval: 3m
Interval: 1h
Interval: 7s
Interval: 5m
Interval: 3h

私がしたいこと:

  1. sを含む単語のみを印刷します(したがって、出力は5秒と7秒になります)。
  2. s、m、hを含む単語のみを印刷してください。

どうすればいいですか?

ベストアンサー1

この試み、

sを含む単語だけを印刷してください。

echo $TEXT | grep -o '[0-9]*s'
5s
7s

s、m、hを含む単語のみを印刷してください。

echo $TEXT | grep -o '[0-9]*[smh]'
5s
3m
1h
7s
5m
3h

男性の場合:

  • grep -o一致する行の一致する(空でない)部分のみが印刷され、各部分は別々の出力行に表示されます。

更新された質問の場合:

  • 最後のフィールドの印刷(存在する場合)s

    awk '$NF~/s/{print $NF}' FILE.txt
    5s
    7s
    
  • s最後のフィールドを印刷する(または存在する場合hm

     awk '$NF~/s/ || $NF~/m/ || $NF~/h/ {print $NF}' FILE.txt
     5s
     3m
     1h
     7s
     5m
     3h
    

おすすめ記事