sed替换ip地址
Sed replacement of ip address
我正在尝试使用 sed 将一个 IP 地址替换为另一个 IP 地址。任何援助将不胜感激。
test.1 文件中的字符串是:
o=Acc1111 3415 1536 IN IP4 10.201.25.173.
我只想用 127.0.0.1.
替换 10.201.25.173.
所需的最终字符串应为:
o=Acc1111 3415 1536 IN IP4 127.0.0.1.
我的 sed 正则表达式是:
sed 's/o=.*IN IP4.*/*IN IP4 127.0.0.1./' test.1
但这会将所有字符串替换为 IN IP4 127.0.0.1.
。
我需要在一行正则表达式中使用该命令。可以吗?
使用捕获组和反向引用将行首复制到替换中,并将 IP 替换为 127.0.0.1
sed 's/\(o=.*IN IP4 \).*/27.0.0.1./' test.1
\(...\)
创建一个捕获组。在替换中 </code> 替换为与第一个捕获组匹配的输入部分,<code>
获取第二个捕获组,依此类推。
一个更简单的解决方案是使用 awk
并只替换最后一个字段。
awk '/IN IP4/ {$NF="127.0.0.1."}1' file
o=Acc1111 3415 1536 IN IP4 127.0.0.1.
这会将所有行中的 IP 替换为 127.0.0.1.
IN IP4
我正在尝试使用 sed 将一个 IP 地址替换为另一个 IP 地址。任何援助将不胜感激。
test.1 文件中的字符串是:
o=Acc1111 3415 1536 IN IP4 10.201.25.173.
我只想用 127.0.0.1.
10.201.25.173.
所需的最终字符串应为:
o=Acc1111 3415 1536 IN IP4 127.0.0.1.
我的 sed 正则表达式是:
sed 's/o=.*IN IP4.*/*IN IP4 127.0.0.1./' test.1
但这会将所有字符串替换为 IN IP4 127.0.0.1.
。
我需要在一行正则表达式中使用该命令。可以吗?
使用捕获组和反向引用将行首复制到替换中,并将 IP 替换为 127.0.0.1
sed 's/\(o=.*IN IP4 \).*/27.0.0.1./' test.1
\(...\)
创建一个捕获组。在替换中 </code> 替换为与第一个捕获组匹配的输入部分,<code>
获取第二个捕获组,依此类推。
一个更简单的解决方案是使用 awk
并只替换最后一个字段。
awk '/IN IP4/ {$NF="127.0.0.1."}1' file
o=Acc1111 3415 1536 IN IP4 127.0.0.1.
这会将所有行中的 IP 替换为 127.0.0.1.
IN IP4