다음 입력 파일의 경우 동일한 마지막 필드의 가장 높은 레코드를 어떻게 얻을 수 있습니까 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