awk를 사용하여 레코드의 n번째 항목을 표시하고 다른 항목을 삭제하려면 어떻게 해야 합니까?
입력 파일:
79933,2
79933,4
79933,5
55251,1
49494,4
49494,2
49494,2
49494,1
이 예에서 원하는 출력이 두 번째 발생인 경우 다음과 같습니다.
79933,4
49494,2
답변1
POSIX적으로:
n=2 awk -F, '++a[$1]==ENVIRON["n"]' <file
첫 번째 필드가 표시될 때마다 증가하여 해당 필드의 발생을 추적하고 이를 배열에 저장합니다 a
. 두 번째로 발생하면 조건이 true가 되어 awk
인쇄 됩니다 $0
.