awk -F , '{if ($2 ~ /^".*"$/) $2 = substr($2, 2, length($2)-2); {gsub(/""/, "", $2);} print $2;}' sample.csv
我已经开始使用上面的awk
删除第二列中的双引号。 awk
对于以下内容正常工作
sample.csv
文件, “文件2”,file3的
带有awk
文件,文件2,文件3
但awk
不适用于以下情况
sample1.csv
文件, “FIL,E2”,file3的
带有awk
文件, “FIL,E2”,file3的
sample1.txt的必需输出
文件,文件2,文件3
我知道问题是因为Double引号中的逗号分隔符,有没有办法跳过这个。
我想删除第二列上的双引号(源可能在双引号内包含多个逗号(,),如“fi,l,e2”)
答案 0 :(得分:5)
$ cat file
file,"file2",file3,"a,b,c","d,e"
$ awk -F'"' -v OFS= '{for (i=2;i<=NF;i+=2) gsub(/,/,"",$i)}1' file
file,file2,file3,abc,de