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