我需要使用linux-shell更改文本文件中的IP地址。我怎样才能做到这一点?你知道正则表达式的一个很好的来源吗?
textfile.txt包含这样的内容:
# text text ffeefe
Whatever text text ffeefe
# text text ffeefe
#
IPAddress : 192.168.200.40
#
# text text ffeefe
#
Whatever text text ffeefe
# text text ffeefe
这就是我要找的:
sed -i / find XXX.XXX.XXX.XXX / 192.168.200.41 / textfile.txt
IP可以是格式为XXX.XXX.XXX.XXX的任何内容,例如192.168.200.40
答案 0 :(得分:1)
虽然 fedorqui 在询问有关特定内容后IP发生的更多信息时是正确的,但我会提供(简单)解决方案来查找任何IPv4字符串。
表达式是:
[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+
sed -i -r 's/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/newip/' file
另一方面,如果在IP之前修复了“IPAddress:”,那么OP应该只使用他们想要的IP。
答案 1 :(得分:0)
这将找到以IPAddress :
开头的行,并将数字更改为新IP。
sed -i -r '/^IPAddress :/s/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/192.168.200.41/' textfile.txt