此问题源于一个用例,将"
替换为''
,乳胶怪癖。
如果里面有'
(双引号),我通常会使用"
(单引号)来附上脚本。但是,在这种情况下,单引号和双引号都出现在此脚本中,我有谷歌找到正确的方法来处理它。这个one提供了解决方案。以下是正确的,但不是非常易读的解决方案。
sed 's!"!'\'''\''!' {filename}
在开始工作之后,我开始认为这种尴尬来自于这种引用机制。因此,是否可以使用非打印字符作为报价?然后,我们不再需要逃避引用了。
答案 0 :(得分:2)
在bash中,你有单引号和双引号,here-docs和here-strings:你可以这样做:
sed_script=$(cat << 'END'
s/"/''/g
END
)
sed "$sed_script" filename