如何从 .CSV 文件的几列中删除撇号 ( ' )?

如何从 .CSV 文件的几列中删除撇号 ( ' )?

我有一个包含 7 个字段的 .CSV 文件,该文件的第 3 列和第 4 列有一个以撇号 ( ' ) 开头的数字。请看下面的例子。

col0,col1,col2,col3,col4,col5,col6,
1value0,1value1,'8972991766941,'8972991766941,1value4,1value5,1value6,
2value0,2value1,'8912988876583,'8912988876583,2value4,2value5,2value6,
3value,3value1,'8912981226981,'8912981226981,3value4,3value5,3value6,
2value0,4value1,'8912971783681,'8912971783681,4value4,4value5,4value6,

如何仅使用 sed 或 awk 去掉第三列和第四列中的撇号?

答案1

你可以这样做awk,这个想法是运行一个在第 3 列和第 4 列上设置命令,将单引号替换为空格。这里\047代表 的八进制代码'

 awk -F, -v OFS=, '{sub(/\047/, "", $3); sub(/\047/, "", $4); print}' file.txt

答案2

使用另一个引号四分之一

sed "s/'//g" file

或结束引用,转义撇号并再次开始引用

sed 's/'\''//g' file

在这种情况下,除了对 shell 有特殊含义的撇号之外,不需要引号

sed s/\'//g file

这也可以使用双引号来完成

sed s/"'"//g file

在阅读这篇文章的评论后,我意识到我没有解决最初的问题,而是更正了OP评论中的命令帖子。

相关内容