중복 대신 파일의 고유한 줄만 인쇄

중복 대신 파일의 고유한 줄만 인쇄

다음과 같이 행별로 정렬된 단어 목록이 있습니다.

apple
apple
grapes
lime
orange
orange
pear
pear
peach
strawberry
strawberry

고유한 행을 인쇄하고 중복 항목을 제거하고 싶습니다.

grapes
peach
lime

sed, 또는 을 사용하여 awk이 작업을 어떻게 수행할 수 있나요 perl?

답변1

이건 일이야고유한:

$ LC_ALL=C uniq -u file
grapes
lime
peach

다음과 같은 다른 도구를 원하는 경우 perl:

perl -nle '$h{$_}++; END {print for grep { $h{$_} == 1 } %h}' <file

답변2

awk '{arr[$1]++} END {for (i in arr) {if (arr[i]==1) {print i} }}' 1
grapes
lime
peach

답변3

이것을 시도해 보세요!

awk '{a[$0]++} END {for (x in a) if (a[x] == 1) print x}'

관련 정보