파일에서 중복 항목 제거

파일에서 중복 항목 제거

다음 file.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

관련 정보