awk:行の正確な文字列と一致

awk:行の正確な文字列と一致

このファイルがあります。

a deiauk Biking US 200 G
b kespaul 202 A
c deiauk NY 222 5 Z

を使用して正確な文字列200を一致させたいと思いますawk。だから私の結果は

a deiauk Biking US 200 G

これは私のコードです

awk -F ' ' '{if($(NF-1) ~ /200/){a[$1]++}}END{for (var in a){print a[var] " " var " " $(NF-1)}}' file.txt

しかしその後、私はすべての代謝を得ました。

ベストアンサー1

正確な一致が必要なので、使用しませんか==

$ cat >file
a deiauk Biking US 200 G
b kespaul 202 A
c deiauk NY 222 5 Z
a auie auie 200 B
b nrst nrst 200 C

$ awk '$(NF-1)==200{a[$1]++}END{for (v in a){print  v,a[v]}}' file
a 2
b 1

次の方法で一致を制限することもできます/^200$/

$ awk '$(NF-1)~/^200$/{a[$1]++}END{for (v in a){print  v,a[v]}}' file
a 2
b 1

編集する:

私はあなたのコマンドを試してみました。あなたのものは確実ですか-F ' '

おすすめ記事