在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')
从您链接的答案:
使用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)
在这两种情况下输出是:
这只狗非常漂亮
您可以与 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)
解释:
对于特殊字符\和",您必须使用转义序列\\和\"