이와 같은 파일이 주어지면
value,value,value,value
value1,value1,value,value1
value2,value2,value,value2
어떻게 하면 이것을 다음과 같이 바꿀 수 있습니까?
value,value,value,value
value1,value1, ,value1
value2,value2, ,value2
기본적으로 3열의 중복 값을 병합하여 첫 번째 행에 표시하고 다른 데이터도 csv에 기록으로 유지합니다.
나는 그것을 시도했지만 cat file | sort -u -t, -k3
작동하지 않습니다.
답변1
3열뿐만 아니라
$ cat file.csv
aaa,bbb,ccc,ddd
aat,bbk,ccc,ddd
aaa,bbk,cc3,dd4
aaa,bbb,ccc,ddd
$ awk '
BEGIN {FS = OFS = ","}
NR == 1 {for (i=1; i<=NF; i++) prev[i] = $i}
NR > 1 {
for (i=1; i<=NF; i++)
if ($i == prev[i])
gsub(/./, " ", $i)
else
prev[i] = $i
}
1
' file.csv
aaa,bbb,ccc,ddd
aat,bbk, ,
aaa, ,cc3,dd4
,bbb,ccc,ddd