加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 使用sed格式化IP

发布时间:2020-12-16 01:25:10 所属栏目:安全 来源:网络整理
导读:我正在试图找出如何使用sed来执行以下操作: 我有一个IPv4地址列表,我试图使它们在显示器上统一.所以例如:1.2.4.32将是001.002.004.032. 10.125.62.1将为010.125.062.001. 我正在尝试使用sed来做,因为这正是我正在学习的. 我得到这两个,这将采取任何一个或
我正在试图找出如何使用sed来执行以下操作:

我有一个IPv4地址列表,我试图使它们在显示器上统一.所以例如:1.2.4.32将是001.002.004.032. 10.125.62.1将为010.125.062.001.

我正在尝试使用sed来做,因为这正是我正在学习的.

我得到这两个,这将采取任何一个或两个数字的数字,并在前面追加零.

sed 's/&;[0-9][0-9]&;/0&/g' file
sed 's/&;[0-9]&;/00&/g' file

但是,在其他非IP地址中,我的输入文件将具有单位或双位数字.例:

host-1 1.2.3.32

所以我需要一种方法来寻找完整的IP地址,我认为可以实现这一点

sed 's/.&;[0-9]&;/00&/g'

但是不仅如此,忽略了一些这样的情况,而且由于某种原因,它在第三个八位字节的末尾附加了00.

echo "10.10.88.5" | sed 's/.&;[0-9]&;/00&/g'
10.10.8800.5

示例文件:

Jumpstart Server jumo     10.20.5.126
Jumpstart Server acob     10.20.5.168
NW1 H17  Node cluster     10.10.161.87
NW1 H17  Node-1       10.10.161.8
NW1 H17  Node-2       10.10.161.9
ts-nw1      10.10.8.6
$cat 37222835.txt
Jumpstart Server jumo     10.20.5.126 10.29.23.24
Jumpstart Server acob     10.20.5.168 dig opt
Jumpstart Server reac     251.218.212.1 rel
NW1 H17  Node cluster     10.10.161.87
NW1 H17  Node-1       10.10.161.8
NW1 H17  Node-2       10.10.161.9
ts-nw1      10.10.8.6
Nw2 HW12 Node-3       192.168.0.1
cluster

做:

sed -n 's/([1]?[0-9][0-9]?|2[0-4][0-9]|25[0-5]){1}.'
'([1]?[0-9][0-9]?|2[0-4][0-9]|25[0-5]){1}.'
'([1]?[0-9][0-9]?|2[0-4][0-9]|25[0-5]){1}.'
'([1]?[0-9][0-9]?|2[0-4][0-9]|25[0-5] )/001.002.003.004/g;
s/0+([0-9]{3})/1/g;p' 37222835.txt

给出:

Jumpstart Server jumo     010.020.005.126 010.029.023.024
Jumpstart Server acob     010.020.005.168 dig opt
Jumpstart Server reac     251.218.212.001 rel
NW1 H17  Node cluster     010.010.161.087
NW1 H17  Node-1       010.010.161.008
NW1 H17  Node-2       010.010.161.009
ts-nw1      010.010.008.006
Nw2 HW12 Node-3       192.168.000.001
cluster

优于@ benjamin-w提到的方法

这可以替代同一行中的多个IP地址

缺点(@本杰明提到的方法补救这个)

如果有一个字,说Node-000234它会改为Node-234.实际上,您可以使用第二个替换命令来获得所需的行为.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读