我有以下格式的数据-
4,"abc"
8,"def"
9,"ghi"
我想用双引号将第一列的值括起来。
"4","abc"
"8","def"
"9","ghi"
我怎么做 ?
答案1
一个非常简单的替换是:
awk -F, '{sub($1, "\"&\""); print}' tmp.csv
(谢谢邪恶汤)。
选项 -F 告诉 awk 字段分隔符是逗号,sub(stitution) 参数告诉 awk 用其自身 (&) 替换第一个字段,前面和后面都加上“。
答案2
这可能对你有用(GNU sed):
sed 's/[^,]*/"&"/' file
答案3
这只是一种快速而肮脏的方法(会有更好的方法):
sed -e 's/"//g' -e 's/^\|$/"/g' -e 's/,/","/g' file.csv
第一个命令s/"//g
删除所有"
。
然后在行首和行末s/^\|$/"/g
添加。 最后一个命令用替换所有。"
s/,/","/g
,
","
当然这个仅有的如果你没有"
并且,
在你的田地。