这是我的文件:FILEABC.txt
Name|address|age|country
john|london|12|UK
adam|newyork|39|US|X12|123
jake|madrid|45|ESP
ram|delhi
joh|cal|34|US|788
我想找到文件中的 header 计数。所以我有这个命令
猫FILEABC.txt | awk --field-separator='|' '{打印 NF}' |排序-n |uniq -c
我得到的这个命令的结果是
猫FILEABC.txt | awk --field-separator='|' '{打印 NF}' |排序-n |uniq -c
1 2
3 4
1 5
1 6
我的要求是,如何从我的文件中找到那些只有 2 个字段、4 个字段等的记录。 例如,
如果想查看只有2列的记录:
ram|delhi
如果想查看 rec 是否有超过 4 个 col:
adam|newyork|39|US|X12|123
最佳答案
如果您只想打印具有 2 个字段的记录,那么以下内容可能对您有所帮助。
awk -F"|" 'NF==2' Input_file
对于任何类型的记录,如果您需要超过 4 个字段的行,则将上述条件更改为 NF>4
或者您需要超过 5 个字段的行,例如--> NF>5
解释:通过执行 -F"|"
我确保字段分隔符在这里是管道,然后是 NF
是开箱即用的 awk
变量,它定义了一行中的总字段数,因此根据您的请求检查此处的字段数是否大于 2,如果此条件为 TRUE,则打印当前行(我没有写 print 因为 awk
工作在条件和 Action 的方法上,所以如果这里的条件为真,我没有提到任何 Action ,默认情况下,该行将发生 Action 打印).
关于linux - 查找比特定列长/短的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46971614/