gsub什么都没有替换一个引用

时间:2014-09-10 08:34:35

标签: awk gsub

输入

aaaa, bbbb, ccc, "dddd, ddd1", eee
eee, "fff, ggg, hhh

输出

aaaa, bbbb, ccc, "dddd, ddd1", eee
eee, fff, ggg, hhh

我认为gsub应该这样做,但是如何判断“只用了,什么都没有,”只是在所有行中有一次(有时会错误地发生)。

2 个答案:

答案 0 :(得分:1)

这应该做:

awk -F'"' 'NF==2{sub(/"/,"")}7' file

答案 1 :(得分:0)

你可以尝试下面的awk命令,

$ awk '/^[^"]*"[^"]*$/{sub(/"/,"")}1' file
aaaa, bbbb, ccc, "dddd, ddd1", eee
eee, fff, ggg, hhh

搜索模式^[^"]*"[^"]*$匹配只有一个"引号的行。删除该行上的双引号将为您提供所需的结果。 sub函数足以从一行中删除单个字符。