我有一个接口列表,我需要将原始文件.
修改为:
,以便我可以将它们提供给ifconfig脚本。
看起来基本上是这样的:
eth0.1 192.168.0.1 255.255.255.0
eth0.2 192.168.1.1 255.255.255.0
eth0.3 192.168.2.1 255.255.255.0
使用我的基本知识,我可以做到以下几点:
sed -i 's/\./\:/g' <test_file>
将所有.
变为:
。
eth0:1 192:168:0:1 255:255:255:0
现在,如果我没有修改原始文件,我知道我可以awk '{print $1}'
但是在使用sed -i
时我不知道如何执行此操作。
我应该提到的是,某些行也不是子接口,例如:
eth1 10.10.10.1 255.255.255.0
删除g
中的sed
(我确定它是正确的方向),不幸的是将这些行的第一个八位字节修改为:
eth1 10:10.10.1...
答案 0 :(得分:2)
试试这个:
sed -i -r 's/^(eth[0-9]+)\./\1:/' file.txt
输出:
eth0:1 192.168.0.1 255.255.255.0
eth0:2 192.168.1.1 255.255.255.0
eth0:3 192.168.2.1 255.255.255.0