awkを使用して5つの列を含む行のみを印刷する方法

awkを使用して5つの列を含む行のみを印刷する方法

パイプで区切られたデータを含むファイルがあります。 5つの列のみを使用して行を印刷したいと思います。私は次を試しました。これはうまくいきません。ちょうどすべての行を印刷します。これを正しく行う方法を教えてください。ありがとうございます!

文書の内容:

10413300|Maintenance Stock Clerk A - Michelle Hanley | Michelle Hanley (1680654)|Filled||10402112
10413301|Maintenance Stock Clerk - dasda|space||10402122
MOM Parkcentrum F;Alkotás u. 53.||34535|34345|asd
Business Center Naberezhnaya Tower" Block C"|||3453|ffg|345

ここでは、5つの列のみを使用して行を印刷しようとしています。

$ gawk -F "|" '{ if (NF=5) print $0 }' data3
10413300 Maintenance Stock Clerk A - Michelle Hanley   Michelle Hanley (1680654) Filled
10413301 Maintenance Stock Clerk - dasda space  10402122
MOM Parkcentrum F;Alkotás u. 53.  34535 34345 asd
Business Center Naberezhnaya Tower Block C   3453 ffg

出力は、4行のうち2行に5つ以上の列があることを示しています。

$ gawk -F "|" '{print NF}' data3
6
5
5
6

ベストアンサー1

NF=5は課題で、テスト値はで完了します==。このように:

awk -F \| 'NF==5' data3

おすすめ記事