示例文件(test.csv):
"PRCD-15234","CDOC","12","JUN-20-2016 17:00:00","title, with commas, ","Y!##!"
"PRCD-99999","CDOC","1","Sep-26-2016 17:00:00","title without comma","Y!##!"
Run Code Online (Sandbox Code Playgroud)
输出文件:
PRCD-15234|CDOC|12|JUN-20-2016 17:00:00|title, with commas, |Y!##!
PRCD-99999|CDOC|1|Sep-26-2016 17:00:00|title without comma|Y!##!
Run Code Online (Sandbox Code Playgroud)
我的脚本(不起作用)如下:
while IFS="," read f1 f2 f3 f4 f5 f6;
do
echo $f1|$f2|$f3|$f4|$f5|$f6;
done < test.csv
Run Code Online (Sandbox Code Playgroud)
(generate output) | sed -e 's/","/|/g' -e 's/^"//' -e 's/"$//'
或者
sed -e 's/","/|/g' -e 's/^"//' -e 's/"$//' $file
对于 3 个表达式:
-e 's/","/|/g'
= 用","
新的分隔符替换所有分隔符|
-e 's/^"//'
= 删除前导"
标记
-e 's/"$//'
= 删除行尾"
标记
这将保留任何碰巧在标题中的引号,只要它们与初始分隔符模式不匹配 ","