sed在特定匹配行的末尾添加一些内容

时间:2012-10-23 19:47:47

标签: regex linux sed

我有这个包含以下文字的文件。

200.200.200.253
80/tcp:filtered:http
443/tcp:filtered:https

200.200.200.254
80/tcp:filtered:http
443/tcp:filtered:https

web.example.com (200.200.200.250)
80/tcp:filtered:http
443/tcp:filtered:https

我想使用 sed 在IP地址的末尾添加(:)。所以它看起来像是跟随。

 200.200.200.253 :
 80/tcp:filtered:http
 443/tcp:filtered:https

 200.200.200.254 :
 80/tcp:filtered:http
 443/tcp:filtered:https

 web.example.com (200.200.200.250) :
 80/tcp:filtered:http
 443/tcp:filtered:https

我遇到web.example.com (200.200.200.250)正则表达式匹配问题。

我希望这一行看起来像web.example.com (200.200.200.250) :


我得到了答案这是我试过的。

 sed -e 's/[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}/&:/' file.txt

1 个答案:

答案 0 :(得分:2)

我建议您使用

<击>

<击>
sed -r 's/^([0-9]+\.){3}[0-9]+$/& :/g' filename

<击>

sed -r 's/([0-9]+\.){3}[0-9]+.*/& :/g' filename