在逗号之间的字符串周围添加引号,但不要在数字周围添加引号

在逗号之间的字符串周围添加引号,但不要在数字周围添加引号

因此,我的文件中有一些文本几乎代表 CSV 格式,但不完全代表。不过我想转成 CSV 文件。

我有例如:

cuz,0,1,2,3,-4,abc,a b c,0

我怎样才能把它变成

"cuz",0,1,2,3,-4,"abc","a b c",0

任何帮助,将不胜感激!

提前致谢。

答案1

呆呆地方法:

gawk -i inplace -F, '{for(i=1;i<=NF;i++){ 
      if ($i!~/^-?[0-9]*$/) $i=sprintf("\"%s\"",$i); }}1' OFS=',' file

内容file

"cuz",0,1,2,3,-4,"abc","a b c",0

-i inplace- 允许到位文件修改

$i!~/^-?[0-9]*$/- 模式仅匹配包含除数字之外的字符的字段

相关内容