![파일에서 중복 항목 제거 [닫기]](https://linux55.com/image/155035/%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EC%A4%91%EB%B3%B5%20%ED%95%AD%EB%AA%A9%20%EC%A0%9C%EA%B1%B0%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
다음 파일 .txt가 있습니다.
Plummet
Cherist the day
--
The Transatlatins <-----------duplicate
Mysteriosa <-----------duplicate
--
Angel City;Lara McAllen
Love me right
--
The Transatlatins
Mysteriosa
순서를 변경하지 않고 중복 항목을 제거하는 방법은 무엇입니까? 행에 공백이 있어서 시도해 보았지만 sort
순서를 변경했는데 uniq
중복된 내용이 적용되지 않습니다.
예상되는 결과:
Plummet
Cherist the day
--
Angel City;Lara McAllen
Love me right
--
The Transatlatins
Mysteriosa
답변1
가설이 파일의 형식은 다음과 같습니다.
field1\n
field2\n
\n
field1\n
field2\n
\n
즉, 예제 파일의 마지막 줄은 다음과 같아야 합니다.
Mysteriosa Mysteriosa
\n
글쎄요, 마지막 항목 뒤에 줄 바꿈 문자가 따라온 다면 이것이 효과가 있을 것입니다.
sed '$!N;$!N;s/\n/:/g' file | nl -s"|" | sort -t '|' -k2 | awk -F"|" '!_[$2]++' | sort -n | sed -e 's/.*|//' -e 's/:/\n/g'
답변2
주문하다:
awk '{if (!seen[$1,$2]++)print $0}' filename