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

관련 정보