GNU/Linux >> Linux の 問題 >  >> Linux

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

承認された回答:

NF=5 は割り当てであり、値のテストは==で行われます。 。このように:

awk -F | 'NF==5' data3

Linux
  1. 3番目の列を最後の列に印刷する方法は?

  2. 最初のn列と最後のn列を切り取る方法は?

  3. diff (bash) を使用して異なる行のみを表示する方法

  1. Linuxで文字列を含む行を見つける方法

  2. sed を使用して二重の空行のみを削除するには?

  3. sed を使用してファイルの最後の n 行を削除する方法

  1. ファイルの行数だけを取得する方法

  2. Linuxでプロセス名を指定してプロセスIDのみを取得するには?

  3. 大文字の単語のみを出力する (Linux)