여러 열을 기반으로 파일에서 중복 된 항목을 모두 제거하고 싶습니다. 장난감 예가 있습니다 :Unix의 파일에서 중복 된 파일을 모두 지우는 중
첫 번째 4 개 열을 통해 고유성이없는 모든 레코드를 삭제하고 싶습니다. 모두를 성공적으로 속는을 제거
awk -F"," -v OFS="," '{cnt[$1,$2,$3,$4]++} END {for (rec in cnt) if (cnt[rec] == 1) print rec}' ss.txt
하지만, 올바른 구분 기호 또는 인쇄를 적용하지 않습니다
BLUE,CAR,RED,HOUSE,40
BLUE,CAR,BLACK,HOUSE,20
BLUE,CAR,GREEN,HOUSE,10
BLUE,TRUCK,RED,HOUSE,40
BLUE,TRUCK,GREEN,HOUSE,40
BLUE,TRUCK,RED,HOUSE,40
내가 시도
BLUE,CAR,RED,HOUSE,40
BLUE,CAR,BLACK,HOUSE,20
BLUE,CAR,GREEN,HOUSE,10
BLUE,TRUCK,GREEN,HOUSE,40
발생해야 : 그래서에 awk
스크립트를 적용 전체 기록 :
BLUECARREDHOUSE
BLUETRUCKGREENHOUSE
BLUECARBLACKHOUSE
BLUECARGREENHOUSE
awk
솔루션을 선호하지만 휴대용 솔루션을 환영합니다.
추가 데이터를 첫 번째 레코드의 40 개에 넣으시겠습니까? –
예, 중복 된 값이 처음 네 개의 필드에만 설정되어 있어도 전체 레코드가 인쇄되어야합니다. – mlegge