test.txt
처음 두 열을 기반으로 파일에서 두 개의 중복 항목을 제거 해야 합니다 .
tom,22,777
tom,22,888
tom,18,54
ray,44,43843
예상되는 결과:
tom,18,54
ray,44,43843
사용해 보았지만 cat test.txt | sort -u t, k1,1 k2,2
작동하지 않습니다
답변1
다음을 사용할 수 있습니다 awk
. 파일을 두 번 처리합니다. 첫 번째 및 두 번째 필드의 발생 횟수를 한 번 계산한 다음 줄을 다시 인쇄합니다(횟수가 1인 경우).
awk -F, 'NR==FNR{seen[$1,$2]++;next};seen[$1,$2]==1' infile infile
답변2
grep(1)
한 가지 접근 방식은 GNU (for ) 를 가정 fgrep -f -
하고 입력 필드에 영숫자 문자만 포함되어 있다고 가정하는 것입니다.
cut -d , -f 1,2 file.csv | sort | uniq -d | fgrep -vwf - file.csv
답변3
이 시도
cat file.txt | grep -v "`cut -d , -f 1,2 file.txt | uniq -d`"