如何使用perl解释器转义单引号?

时间:2013-05-22 19:59:04

标签: perl bash

如何在我的bash表达式find . | xargs perl -pi -e 's/'conflicts' => '',//g'中转义单引号?我想替换字符串'conflicts'=> '',在我的文件中?

3 个答案:

答案 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"