在字段中转义分隔符时转换分隔符

江西大学

我有一个文本文件,其字段由分隔|我想将其转换,为典型的CSV。我试图用这个:

sed 's/|/,/g' test.txt > test.csv

但是某些字段中已经有逗号了。例如:

var1|var2|var3
Potter, Harry|2|3

我应该怎么办?

阿鲁西克斯

尝试这个

sed 's/|/","/g; s/^/"/; s/$/"/' file 

这将产生如下输出:

"var1","var2","var3"
"Potter, Harry","2","3"

解释:

您需要使用引号将每个列括起来""

  • 首先s/|/","/g替换所有|","逗号引号括起来的输出:var1","var2","var3 Potter, Harry","2","3

  • Seconds/^/"/用引号替换行首,其中^表示行首

  • 第三s/$/"/行用引号替换行尾,其中$表示行尾

您还可以在每个逗号之前使用反斜杠在字段中转义逗号,如下所示

Potter\, Harry,2,3

您可以在此处阅读有关csv格式的更多信息:https : //www.csvreader.com/csv_format.php

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章