如何使用awk从文件中删除引号

时间:2016-11-11 18:00:01

标签: csv awk

我正在处理超过500,000行的CSV文件。

我希望更改下面的任何行

2164-09-13 17:00:00,"""some text here""",,"moretext",

2164-09-13 17:00:00,"some text here",,"moretext",

有多个双引号的行,我想将它们更改为一对引号。

3 个答案:

答案 0 :(得分:2)

鉴于您已告诉我们的内容,您只需要:

$ tr -s '"' < file
2164-09-13 17:00:00,"some text here",,"moretext",

答案 1 :(得分:1)

g用于全局(将替换不仅仅是单行上的第一个模式实例),s用于替换(s / regexp / replacement /),+被转义以便sed知道这不是文字在模式中,但是正则表达式的一部分,表示发现模式的一次或多次出现。

echo '2164-09-13 17:00:00,"""some text here""",,"moretext",' | sed 's/"\+/"/g'

答案 2 :(得分:1)

echo '2164-09-13 17:00:00,"""some text here""",,"moretext",' |awk 'gsub(/"""/,"\42")'

2164-09-13 17:00:00,"some text here",,"moretext",