AWK:フィールドの単語数に基づいて行を選択する方法は?

AWK:フィールドの単語数に基づいて行を選択する方法は?

これは私のテキストファイルの一つです。

1|this|1000
2|that|2000
3|hello|3000
4|hello world|4000
5|lucky you|5000
6|awk is awesome|6000
.
.
.

$ 2から2つの単語のみを含む行(4行目と5行目)のみを印刷するにはどうすればよいですか?

私が試したことは次のとおりです。ただし、単語数ではなく文字数を計算します。

awk -F"|" '{if(length($2==2) print $0}'

ベストアンサー1

awk関数の戻り値を使用できますsplit

$ awk -F'|' 'split($2,a,"[ \t]+") == 2' file
4|hello world|4000
5|lucky you|5000

おすすめ記事