在awk中,我如何使用转义的双引号替换所有双引号?
The dog is "very" beautiful
会变成什么
The dog is \"very\" beautiful
我看过这个答案(在使用gsub函数时如何用两个双引号替换一个双引号?),并试图进行调整,但是我对awk不是很熟练(而且sed也不可行,因为我同时在Linux和OS X上工作,它们安装了不同版本的'sed')
在awk中,我如何使用转义的双引号替换所有双引号?
The dog is "very" beautiful
会变成什么
The dog is \"very\" beautiful
我看过这个答案(在使用gsub函数时如何用两个双引号替换一个双引号?),并试图进行调整,但是我对awk不是很熟练(而且sed也不可行,因为我同时在Linux和OS X上工作,它们安装了不同版本的'sed')
你链接的答案中提到:
使用 gsub:
echo 'The dog is "very" beautiful' | gawk '{ gsub(/"/,"\\\"") } 1'
使用sed的另一种选择:
echo 'The dog is "very" beautiful' | sed 's/"/\\"/g'
两种情况的输出结果均为:
这只狗非常美丽
您可以使用GNU awk:
echo 'The dog is "very" beautiful' | gawk '{ gsub(/"/,"\\\"") } 1'
你可以获得
The dog is \"very\" beautiful
说明:
对于特殊字符\
和"
,您必须使用转义序列\\
和\"
。
echo 'The dog is "very" beautiful' | gawk '{ gsub(/"/,"\\\"") } 1'
- Jose Ricardo Bustos M.