如何用撇号(')前缀列值?

德鲁夫

我有一个包含多列和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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章