Regex 如何正确转义Perl pie的搜索字符串
我使用这个经典的perl one liner递归地替换多个文件中的字符串Regex 如何正确转义Perl pie的搜索字符串,regex,perl,Regex,Perl,我使用这个经典的perl one liner递归地替换多个文件中的字符串 perl -pi -e 's/oldstring/newstring/g' `grep -irl oldstring *` 但这让我失望,因为我想找到字符串: '$user->primaryorganisation->id' 并替换为 $user->primaryorganisation->id 我似乎无法正确地转义字符串以使该行成功运行 感谢您的帮助 试试这个。很多逃犯。按照TLPs建议使用
perl -pi -e 's/oldstring/newstring/g' `grep -irl oldstring *`
但这让我失望,因为我想找到字符串:
'$user->primaryorganisation->id'
并替换为
$user->primaryorganisation->id
我似乎无法正确地转义字符串以使该行成功运行
感谢您的帮助 试试这个。很多逃犯。按照TLPs建议使用源文件
perl -pi -e "s/'\\\$user->primaryorganisation->id'/\\\$user->primaryorganisation->id/g" `grep -irl "'\$user->primaryorganisation->id'" *`
说明:
- 三个反斜杠:前两个告诉shell生成一个文本反斜杠;第三个逃逸壳的
;这使得Perl的$
需要反斜杠来转义变量插值\$
- 双引号
将单引号“
放入其中”
- 一个反斜杠和一个美元表示grep,因此shell传递一个字面上的美元符号
perl -pi -e "s/'\\\$user->primaryorganisation->id'/\\\$user->primaryorganisation->id/g" `grep -irl "'\$user->primaryorganisation->id'" *`
说明:
- 三个反斜杠:前两个告诉shell生成一个文本反斜杠;第三个反斜杠转义shell的
;这使得Perl的$
需要反斜杠来转义变量插值\$
- 双引号
将单引号“
放入其中”
- 一个反斜杠和一个美元表示grep,因此shell传递一个字面上的美元符号
perl -pi -e "s/'\\\$user->primaryorganisation->id'/\\\$user->primaryorganisation->id/g" `grep -irl "'\$user->primaryorganisation->id'" *`
说明:
- 三个反斜杠:前两个告诉shell生成一个文本反斜杠;第三个逃逸壳的
;这使得Perl的$
需要反斜杠来转义变量插值\$
- 双引号
将单引号“
放入其中”
- 一个反斜杠和一个美元表示grep,因此shell传递一个字面上的美元符号
perl -pi -e "s/'\\\$user->primaryorganisation->id'/\\\$user->primaryorganisation->id/g" `grep -irl "'\$user->primaryorganisation->id'" *`
说明:
- 三个反斜杠:前两个告诉shell生成一个文本反斜杠;第三个反斜杠转义shell的
;这使得Perl的$
需要反斜杠来转义变量插值\$
- 双引号
将单引号“
放入其中”
- 一个反斜杠和一个美元表示grep,因此shell传递一个字面上的美元符号
\047
。因此,这应该是可行的:
s/\047(\$user->primaryorganisation->id)\047/$1/g
我推荐Maher的Minimal Perl,因为它比你想知道的多。如果你想在Perl中表示一个单引号,但不能,因为单引号本身使用单引号,你可以使用单引号的八进制代码
\047
。因此,这应该是可行的:
s/\047(\$user->primaryorganisation->id)\047/$1/g
我推荐Maher的Minimal Perl,因为它比你想知道的多。如果你想在Perl中表示一个单引号,但不能,因为单引号本身使用单引号,你可以使用单引号的八进制代码
\047
。因此,这应该是可行的:
s/\047(\$user->primaryorganisation->id)\047/$1/g
我推荐Maher的Minimal Perl,因为它比你想知道的多。如果你想在Perl中表示一个单引号,但不能,因为单引号本身使用单引号,你可以使用单引号的八进制代码
\047
。因此,这应该是可行的:
s/\047(\$user->primaryorganisation->id)\047/$1/g
我推荐Maher的Minimal Perl,因为它比您想知道的关于一行Perl的艺术要多得多。
...'...
您可以使用
'...'\''...'
因此,
s/'(\$user->primaryorganisation->id)'/$1/g
变成
's/'\''(\$user->primaryorganisation->id)'\''/$1/g'
所以
产生
...'...
您可以使用
'...'\''...'
因此,
s/'(\$user->primaryorganisation->id)'/$1/g
变成
's/'\''(\$user->primaryorganisation->id)'\''/$1/g'
所以
产生
...'...
您可以使用
'...'\''...'
因此,
s/'(\$user->primaryorganisation->id)'/$1/g
变成
's/'\''(\$user->primaryorganisation->id)'\''/$1/g'
所以
产生
...'...
您可以使用
'...'\''...'
因此,
s/'(\$user->primaryorganisation->id)'/$1/g
变成
's/'\''(\$user->primaryorganisation->id)'\''/$1/g'
所以
您可以使用源文件替换
-e
代码:perl-pi source.pl.
您可以使用源文件替换-e
代码:perl-pi source.pl.
您可以使用替换-e
代码的源文件:perl-pi source.pl.
使用源文件替换-e
代码:perl-pi source.pl.
解释应该获得额外的学分,您可以在这里保存一层转义。给鱼和教鱼。解释应该得到额外的学分。给鱼和教鱼。解释应该得到额外的学分。给鱼和教鱼。解释应该得到额外的学分。给鱼和教鱼。