关于sed命令

关于sed命令,sed,Sed,我正在努力使用sed命令 我想将文件中的IP地址更改为10.2.22.222:8000 该文件包含以下内容 Uri = 10.1.11.111:8000 我相信下面的代码是好的 sed -e "s/[0-9]{1-3}.[0-9]{1-3}.[0-9]{1-3}.[0-9]{1-3}:[0-9]{1-4}/10.2.22.222:8000/" 然而,它不能正确工作,即使我相信我的正则表达式是正确的 我该怎么办?您的正则表达式不正确,范围量词语法是{min,max},而不是{min-max}。

我正在努力使用
sed
命令

我想将文件中的IP地址更改为10.2.22.222:8000

该文件包含以下内容

Uri = 10.1.11.111:8000
我相信下面的代码是好的

sed -e "s/[0-9]{1-3}.[0-9]{1-3}.[0-9]{1-3}.[0-9]{1-3}:[0-9]{1-4}/10.2.22.222:8000/"
然而,它不能正确工作,即使我相信我的正则表达式是正确的


我该怎么办?

您的正则表达式不正确,范围量词语法是
{min,max}
,而不是
{min-max}
。另外,
-e
选项在这里也没有多大帮助,因为您的模式符合POSIX ERE(因为
{x,y}
量词括号没有转义)

使用

或POSIX BRE:

sed 's/[0-9]\{1,3\}\(\.[0-9]\{1,3\}\)\{3\}:[0-9]\{1,4\}/10.2.22.222:8000/'

请参阅。

您的正则表达式不正确,范围量词语法为
{min,max}
sed-E“s/[0-9]{1,3}(\.[0-9]{1,3}){3}:[0-9]{1,4}/10.2.22.222:8000/”
,请参阅,我必须使用“-I”选项。如果需要将结果保存在同一文件中,可以。这在sed版本中并不完全相同,所以在大多数情况下,我将它留给OP来解决。或者通过评论。不管怎么说,这是一个好主意。非常感谢你。我必须逃跑。
sed 's/[0-9]\{1,3\}\(\.[0-9]\{1,3\}\)\{3\}:[0-9]\{1,4\}/10.2.22.222:8000/'