如何用awk中的转义双引号替换双引号?

时间:2015-05-19 21:49:01

标签: regex awk

在awk中如何用转义双引号替换所有双引号?

The dog is "very" beautiful

会变成

The dog is \"very\" beautiful

我已经看到了这个答案(Using gsub to replace a double quote with two double quotes?)并且我试图改编它,但我对awk并不是很好(并且sed是没有选择因为我同时工作在Linux和OS X上,他们有不同的“已安装”

2 个答案:

答案 0 :(得分:6)

从您链接的答案:

使用 gsub

echo 'The dog is "very" beautiful' | gawk '{ gsub(/"/,"\\\"") } 1'

替代方案, sed

echo 'The dog is "very" beautiful' | sed 's/"/\\"/g'

在两种情况下输出都是:

  

狗是\"非常"美丽

答案 1 :(得分:3)

您可以使用GNU awk:

echo 'The dog is "very" beautiful' | gawk '{ gsub(/"/,"\\\"") } 1'

你得到了

The dog is \"very\" beautiful

<强>解释

对于特殊字符\",您必须使用转义序列\\\"