![最高 NF 记录](https://linux22.com/image/98477/%E6%9C%80%E9%AB%98%20NF%20%E8%AE%B0%E5%BD%95.png)
对于以下输入文件,我如何获取同一最后一个字段的awk
最高记录。NF
文件:
5541,55004,919843,IND
5542,5541,55004,919843,IND
7903,790287,RUSE
7905,7903,790287,RUSE
所需输出:
5542,5541,55004,919843,IND
7905,7903,790287,RUSE
答案1
您可以利用两个数组,一个用于保存字段计数,一个用于保存整个记录,并在第二个数组上循环END
:
awk -F, 'NF>a[$NF] {a[$NF]=NF; b[$NF]=$0} END{for (i in b) print b[i]}' file.txt
例子:
% cat file.txt
5541,55004,919843,IND
5542,5541,55004,919843,IND
7903,790287,RUSE
7905,7903,790287,RUSE
% awk -F, 'NF>a[$NF] {a[$NF]=NF; b[$NF]=$0} END{for (i in b) print b[i]}' file.txt
5542,5541,55004,919843,IND
7905,7903,790287,RUSE