有没有一种方法可以在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”选项启用扩展正则表达式,其中元字符具有元

要在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
”选项启用扩展正则表达式,其中元字符具有元含义,除非前面有反斜杠,这与“sed”中的标准约定相反。
echo 123 | perl -pe 's/[0-9]{2}/x/'