如何在我的 bash 表达式中转义单个 qoutes find . | xargs perl -pi -e 's/'conflicts' => '',//g'
?我想在我的文件中替换字符串 'conflicts' => ''?
问问题
12338 次
3 回答
14
FatalError 和 gpojd 都给出了很好的解决方案。我将用另一种选择来解决这个问题:
find . | xargs perl -pi -e 's/\x27conflicts\x27 => \x27\x27,//g'
这是因为在 Perl 中,s/.../.../
符号支持反斜杠转义。\x27
是十六进制转义('
为 U+0027)。
于 2013-05-22T20:20:04.003 回答
11
您不能直接在单引号内对其进行转义,因此要获得单引号,您需要执行以下操作:
$ echo 'i'\''m a string with a single quote'
i'm a string with a single quote
这会结束引用的部分,转义单引号,因为它会出现在引号之外,然后再次开始引用。结果仍然是一个论点。
于 2013-05-22T20:02:27.883 回答
5
在您的代码周围使用双引号:
find . | xargs perl -pi -e "s/'conflicts' => '',//g"
于 2013-05-22T20:14:02.167 回答