使用 linux shell 编辑文本文件行
Edit line a textfile using linux shell
我需要使用 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
虽然 fedorqui 在特定内容之后询问有关 IP 出现的更多信息是正确的,但我将提供(简单的)解决方案来查找任何 IPv4 字符串。
表达式为:
[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+
在 sed 中使用它看起来像这样:
sed -i -r 's/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/newip/' file
另一方面,如果在 IP 之前固定 "IPAddress : ",则 OP 应该只使用他们想要的 IP。
这将找到以 IPAddress :
开头的行并将数字更改为新 IP。
sed -i -r '/^IPAddress :/s/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/192.168.200.41/' textfile.txt
我需要使用 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
虽然 fedorqui 在特定内容之后询问有关 IP 出现的更多信息是正确的,但我将提供(简单的)解决方案来查找任何 IPv4 字符串。
表达式为:
[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+
在 sed 中使用它看起来像这样:
sed -i -r 's/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/newip/' file
另一方面,如果在 IP 之前固定 "IPAddress : ",则 OP 应该只使用他们想要的 IP。
这将找到以 IPAddress :
开头的行并将数字更改为新 IP。
sed -i -r '/^IPAddress :/s/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/192.168.200.41/' textfile.txt