我有一个包含多列和1000条记录的CSV文件,我需要为其中一列(所有列为第二列)的所有值加上撇号作为前缀,'
除了第一行或标题行外,可能会有一个简单的衬为了这。如何使用awk
或实现此目的sed
?请注意,在双引号中包含的值中,我可能会有多个逗号。
样本数据:
"col1","col2","col3","col4","col5"
"value11","value12","value13","value14","value15"
"value21","value22","value23","value24","value25"
"value31","value32","value33","value34","value35"
预期产量:
"col1","col2","col3","col4","col5"
"value11","'value12","value13","value14","value15"
"value21","'value22","value23","value24","value25"
"value31","'value32","value33","value34","value35"
但:
sed '2,$s/^\("[^"]*","\)/\1'"'"/ test.in
使用ERE摆脱一些转义:
sed -E '2,$s/^("[^"]*",")/\1'"'"/ test.in
awk:
awk -F, 'NR>1{sub(/^"/,"\"'"'"'",$2)}1' test.in
如果您不想担心引用,请使用转义代码:
awk -F, '{sub(/^"/,"\"\x27",$2)}1' test.in
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句