我有一个文件z.csv,它是csv文件。行的SOme中包含双引号和逗号。我需要删除双引号中的逗号,然后从每个记录中删除双引号。
"abc","1,234",90,1
,"1,12,000","12,000",RTC
,,,
qqq,www,222,"323"
我需要这样的输出
abc,1234,90,1
,112000,12000,RTC
,,,
qqq,www,222,323
在UNIX中,任何帮助将不胜感激!
答案 0 :(得分:1)
$ awk '{
while ( match($0,/"[^"]*"/) ) {
fld = substr($0,RSTART+1,RLENGTH-2)
gsub(/,/,"",fld)
$0 = substr($0,1,RSTART-1) fld substr($0,RSTART+RLENGTH)
}
print
}' file
abc,1234,90,1
,112000,12000,RTC
,,,
qqq,www,222,323
如果这还不是您所需要的,请参阅What's the most robust way to efficiently parse CSV using awk?。