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

ped*_*o91 5 regex awk

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

The dog is "very" beautiful
Run Code Online (Sandbox Code Playgroud)

会成为

The dog is \"very\" beautiful
Run Code Online (Sandbox Code Playgroud)

我已经看到了这个答案(使用gsub用两个双引号替换双引号?)我试图改编它,但我对awk不是很好(并且sed是没有选择因为我在Linux上工作和OS X,他们安装了不同的'sed')

Jos*_*Sol 7

从您链接的答案:

使用gsub:

echo 'The dog is "very" beautiful' | gawk '{ gsub(/"/,"\\\"") } 1'
Run Code Online (Sandbox Code Playgroud)

替代方案,使用sed:

echo 'The dog is "very" beautiful' | sed 's/"/\\"/g'
Run Code Online (Sandbox Code Playgroud)

在这两种情况下输出是:

这只狗非常漂亮


Jos*_* M. 4

您可以与 GNU awk 一起使用:

echo 'The dog is "very" beautiful' | gawk '{ gsub(/"/,"\\\"") } 1'
Run Code Online (Sandbox Code Playgroud)

你得到

The dog is \"very\" beautiful
Run Code Online (Sandbox Code Playgroud)

解释:

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