[중복]을 정렬하지 않고 텍스트 파일에서 모든 중복을 제거합니다.

[중복]을 정렬하지 않고 텍스트 파일에서 모든 중복을 제거합니다.

간단히 말해서, 다음과 같이 내가 모르는 텍스트 줄이 포함된 파일이 있습니다.

abaa
dddd
bbbb
cccc
abaa
aaaa
abaa

내가 얻고 싶은 결과는

dddd
bbbb
cccc
aaaa

모든 중복 항목이 완전히 제거되었습니다. 텍스트 줄이 다른 곳에서 반복되는 경우 해당 줄과 그 뒤의 중복 항목을 모두 삭제하세요. 가능합니까? 내 모든 검색에는 중복 항목이 제거된 출력이 표시되므로 제거하려는 인스턴스는 하나만 남습니다.

답변1

이 접근 방식을 사용하려면 파일을 두 번 통과해야 합니다. 하나는 각 줄의 발생 횟수를 계산하는 것이고, 다른 하나는 한 번만 나타나는 줄을 인쇄하는 것입니다.

awk 'NR == FNR {count[$0]++; next}; count[$0] == 1' file file

관련 정보