有没有一种方法可以在sed中使用正则表达式,而不必到处都放反斜杠?
要在sed中使用正则表达式语法,必须在有没有一种方法可以在sed中使用正则表达式,而不必到处都放反斜杠?,sed,Sed,要在sed中使用正则表达式语法,必须在(,{等)之前输入\,才能将它们用作特殊字符。例如: ~ > echo 123 | sed 's/[0-9]{2}/x/' 123 vs 这与我习惯的相反。有没有办法使字符在默认情况下具有特殊含义?试试: echo 123 | sed -r 's/[0-9]{2}/x/' 如果您的sed没有-r: echo 123 | perl -pe 's/[0-9]{2}/x/' 在GNU sed-only中,“-r”选项启用扩展正则表达式,其中元字符具有元
(
,{
等)之前输入\
,才能将它们用作特殊字符。例如:
~ > echo 123 | sed 's/[0-9]{2}/x/'
123
vs
这与我习惯的相反。有没有办法使字符在默认情况下具有特殊含义?试试:
echo 123 | sed -r 's/[0-9]{2}/x/'
如果您的
sed
没有-r
:
echo 123 | perl -pe 's/[0-9]{2}/x/'
在GNU sed-only中,“
-r
”选项启用扩展正则表达式,其中元字符具有元含义,除非前面有反斜杠,这与“sed”中的标准约定相反。
echo 123 | perl -pe 's/[0-9]{2}/x/'