입력이 다음과 같은 경우
foo,bar,baz
bar,baz,qux
qux,quux,baz
bar,foo,qux
waldo,fred,garply
출력은
foo,bar,baz
bar,baz,qux
waldo,fred,garply
보시다시피 세 번째 열의 값을 기준으로 레코드가 중복 제거됩니다. 여러 레코드에 동일한 세 번째 열 값이 있는 경우 무작위로 하나(또는 첫 번째, 중요하지 않음)를 선택합니다.
답변1
awk에 대한 관용적 대답은 다음과 같습니다.awk -F, '!seen[$3]++' file
세 번째 열에 값이 처음 표시되면 행이 인쇄됩니다.
답변2
출력 순서에 상관없으시면 sort
아래와 같이 직접 사용하시면 됩니다.
-t,
필드 구분 기호를 ","로 설정-k3
정렬 키를 세 번째 필드로 정의-u
고유한 결과만 필요함을 나타냅니다.$ sort -t, -k3 -u file foo,bar,baz waldo,fred,garply bar,baz,qux $