![在列表中的每个域名前添加“.”但跳过原始 IP 地址](https://linux22.com/image/1443392/%E5%9C%A8%E5%88%97%E8%A1%A8%E4%B8%AD%E7%9A%84%E6%AF%8F%E4%B8%AA%E5%9F%9F%E5%90%8D%E5%89%8D%E6%B7%BB%E5%8A%A0%E2%80%9C.%E2%80%9D%E4%BD%86%E8%B7%B3%E8%BF%87%E5%8E%9F%E5%A7%8B%20IP%20%E5%9C%B0%E5%9D%80.png)
我们正在工作中启动一个新的代理服务器,并且有一个要阻止的域名列表;该列表是从外部站点下载的。
将它们放入乌贼格式我们必须.
在行首添加一个,我们目前已经设置好了/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