私のダミーファイルは次のようになります。
C1 C2 C3
1 a snow
2 b snowman
snow c sowman
snow
$ 3に文字列がある場合は、行を取得したいと思います。私はこれを次のように行うことができます:
awk '($3=="snow" || $3=="snowman") {print}' dummy_file
しかし、もっと簡単な方法があるはずです。
回答:
awk '$3 ~ /snow/ { print }' dummy_file
index()関数で部分文字列を探すことによっても可能です。
awk '(index($3, "snow") != 0) {print}' dummy_file
短いバージョン:
awk 'index($3, "snow")' dummy_file
awk 'index($3, "snow")' dummy_file
sed '/\s*\(\S\+\s\+\)\{2\}\bsnow\(man\)\?\b/!d' file
入力:
C1 C2 C3 1雪 2b雪だるま 雪c雌豚 雪雪snowmanx
..出力:
1雪 2b雪だるま
sed
単語全体に使用することは非常に危険です。技術的には可能ですが、それが確実に機能するためには、従う!?
べきではない単語については、後ろ向き、前向き、および構文を使用する必要がありました。これは気弱な人には何の意味もありません、それは確かです。(そして、それらを見つけて修正するのに多くの時間を
'$3~/snow/'
十分