3열 csv 파일의 경우 list.csv
첫 번째 필드와 일치하는 후속 중복 행을 제거하고 두 번째 필드와 일치하는 처음 3자만 제거하려면 어떻게 해야 합니까? 일부 행의 두 번째 필드에는 3자 미만이 있습니다.
목록.csv:
12,12345,a
12,12345,b
123,12345,a
1234,12,b
1234,12345,a
567,567,a
567,56712,a
567,56734,a
567,6789,a
예상 출력:
12,12345,a
123,12345,a
1234,12,b
1234,12345,a
567,567,a
567,6789,a
답변1
sort
그것도 가능해야지
sort -t, -k1,1 -k2.1,2.3 -u <list.csv
12,12345,a
123,12345,a
1234,12,b
1234,12345,a
567,567,a
567,6789,a
답변2
awk -F, '!seen[$1,substr($2,1,3)]++' list.csv
12,12345,a
123,12345,a
1234,12,b
1234,12345,a
567,567,a
567,6789,a