在列表中的每个域名前添加“.”但跳过原始 IP 地址

在列表中的每个域名前添加“.”但跳过原始 IP 地址

我们正在工作中启动一个新的代理服务器,并且有一个要阻止的域名列表;该列表是从外部站点下载的。

将它们放入乌贼格式我们必须.在行首添加一个,我们目前已经设置好了/bin/sed -i 's/^/./' $file

我们遇到的问题是,一些文件包含 IP 地址(我们不想.在其中添加前导)

我一直在尝试使用 sed 并认为这应该可行,但事实并非如此:

sed '/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/s/^\.//g'

有人可以建议我如何删除.IP 地址中的前导,或者甚至修改第一个命令以不是将其添加.到 IP 地址?

.以下是在每一行开头添加了之后的示例数据域名列表:

.216.32.68.172
.216.32.68.173
.216.32.68.188
.216.32.90.27
.216.32.90.28
.216.32.94.117
.21ace.com
.21publish.com
.21wuxia.com
.222z.net
.22dakika.org
.23-net.org
.23zone.de
.244.120.232.72.static.reverse.ltdomains.com
.24hourcafe.biz.ly

答案1

您已经非常接近了,只需避开{}-字符即可。

这会将.不匹配 IP 地址的所有模式放在前面:

sed '/^[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/! s/^/./g' file

这将删除.IP 地址前面的所有前导字符:

sed '/^.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/ s/^.//g' file2

相关内容