我正在尝试使用 sed 对文件中的 IP 地址进行就地替换。我知道 。是通配符,所以我尝试执行以下操作:
sed -i -e 's/.\..\..\..\./127.0.0.1/g' /.../myfile.txt
但是我不确定 IP 地址的每个部分可以有多少位数字 (1-3),而且我也不确定我的转义是否也有效。有什么建议吗?非常感激
答案1
[0-9]
匹配任何数字。
[0-9]\{1,3\}
匹配 1 到 3 位数字(请注意,这将接受前导零。
所以,
sed -i -e 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/127.0.0.1/g' /.../myfile.txt
应该大致做你想做的事。它会匹配一些无效地址,但可能会完成这项工作。有关更高级的选项,请参阅评论中来自 @steeldriver 的链接