【发布时间】:2021-03-31 14:48:49
【问题描述】:
我有一个文件,其中有数百行与此类似:
index.=10200,intf.10200.4=eth1,vlan.10200.4=500,IP-Addr.10200.4=C0A80A78,uptime.10200.4=120days,duplex.10200.4=full,status.10200.4=up
index.=10201,intf.10201.25=eth1,vlan.10201.25=500,IP-Addr.10201.25=C0A80A79,uptime.10201.25=80days,duplex.10201.25=full,status.10201.25=up
index.=10202,intf.10202.6=eth1,vlan.10202.6=500,IP-Addr.10202.6=C0A80A80,uptime.10202.6=240days,duplex.10202.6=full,status.10202.6=up
我正在尝试通过就地编辑文件将所有十六进制 IP 地址转换为点分十进制。 我已经在网上看到了所有 bash hex to dec ip 转换器,但那些是用于输入值然后转换的。
我将如何编辑文件中的值?
更详细的数据集:
index.=10200,CDP-Local-Intf.10200=FastEthernet0/0/1,CDP-IP-Addr.10200.44=C0A80A78,CDP-Uptime.10200.44=Timeticks:(342342322)52days,CDP-Opposite-Intf.10200.44=FastEthernet0/1/0,CDP-VLAN.10200.44=100,CDP-Duplex.10200.44=3,CDP-Other.10200.44=00000032
index.=10201,CDP-Local-Intf.10201=FastEthernet2/0/1,CDP-IP-Addr.10201.25=C0A80A79,CDP-Uptime.10201.25=Timeticks:(342342322)52days,CDP-Opposite-Intf.10201.25=FastEthernet0/2/0,CDP-VLAN.10201.25=101,CDP-Duplex.10201.25=3,CDP-Other.10201.25=00000032
index.=10202,CDP-Local-Intf.10202=FastEthernet2/1/1,CDP-IP-Addr.10202.11=C0A80A80,CDP-Uptime.10202.11=Timeticks:(342342322)52days,CDP-Opposite-Intf.10202.11=FastEthernet0/3/0,CDP-VLAN.10202.11=101,CDP-Duplex.10202.11=3,CDP-Other.10202.11=00000032
【问题讨论】:
-
会this thread 帮忙吗?
-
我不确定,该线程是一个文件,其中每一行都是一个 IP。另外,该帖子在十六进制 IP 地址之前也有静态字符串,我的文件在索引 (10200.) 和 = 之间有随机数
-
这意味着“提示”如何做到这一点,而不是作为一个完整的解决方案。我相信这种技术可以非常简单地用于您的案例。祝你好运!
-
该解决方案不将输出打印到屏幕上吗?我正在尝试用十进制格式替换文件中的每个十六进制值
-
该帖子代码确实有效,但它没有就地编辑文件。我可以在任何地方找到转换脚本,我的问题是“就地编辑文件”
标签: bash hex ip-address