最高 NF 记录

最高 NF 记录

对于以下输入文件,我如何获取同一最后一个字段的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

相关内容