如何使用 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

相关内容