我有以下输出:
vif = [ 'ip=1.2.3.4, mac=00:00:00:00:00:00, bridge=eth1', 'ip=5.6.7.8, mac=00:00:00:00:00:00, bridge=eth1' ]
有时候,只有一个ip地址。所以它是:
vif = [ 'ip=1.2.3.4, mac=00:00:00:00:00:00, bridge=eth1' ]
而在其他情况下,有超过 2 个 ip 地址:
vif = [ 'ip=1.2.3.4, mac=00:00:00:00:00:00, bridge=eth1', 'ip=5.6.7.8, mac=11:11:11:11:11:11, bridge=eth1', 'ip=9.1.2.3, mac=22:22:22:22:22:22, bridge=eth1' ]
有没有简单的方法只获取 ip 地址?我想将它们存储在一个数组中。
最佳答案
这是众多可能性中的一种:tr -s "[,'""\n"| grep "^ip="|剪切-d“=”-f2
例子:
echo "vif = [ 'ip=1.2.3.4, mac=00:00:00:00:00:00, bridge=eth1', 'ip=5.6.7.8, mac=11:11:11:11:11:11, bridge=eth1', 'ip=9.1.2.3, mac=22:22:22:22:22:22, bridge=eth1' ]" | tr -s "[,'" "\n" | grep "^ip=" | cut -d "=" -f2
产生
1.2.3.4
5.6.7.8
9.1.2.3
关于linux - 从配置文件中删除 ip 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22217809/