bash可以使用非打印字符作为报价吗?

时间:2013-07-07 20:55:54

标签: bash printing quotes

此问题源于一个用例,将"替换为'',乳胶怪癖。

如果里面有'(双引号),我通常会使用"(单引号)来附上脚本。但是,在这种情况下,单引号和双引号都出现在此脚本中,我有谷歌找到正确的方法来处理它。这个one提供了解决方案。以下是正确的,但不是非常易读的解决方案。

sed 's!"!'\'''\''!' {filename}

在开始工作之后,我开始认为这种尴尬来自于这种引用机制。因此,是否可以使用非打印字符作为报价?然后,我们不再需要逃避引用了。

1 个答案:

答案 0 :(得分:2)

在bash中,你有单引号和双引号,here-docs和here-strings:你可以这样做:

sed_script=$(cat << 'END'
s/"/''/g
END
)
sed "$sed_script" filename