微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bash – 更正格式sed?

我有一个IFCONfig输出,我已经清理了三个主要部分:

1)IFNAME

2)IP地址

3)networking掩码

阅读bash环境variables

是否有任何修复(或解决方法)Git-2.11.0(3)处理双斜杠的64位错误

如何在bash脚本中模拟两个连续的ENTER键的命令?

在电子表格中find文本行1并获取第2列

获取独特的线条

这目前由以下string完成:

ifconfig -a | grep eth -A 1 | awk '{print $1,$2,$4}' | sed 's/Link HWaddr//g;s/inet addr://g;s/Mask://g;s/--//g;/^$/ d' | grep -v 'UP|^ '

输出如下所示:

eth0 192.168.0.60 255.255.255.0 eth1 1.1.1.1 255.255.255.0 eth2 eth2:2 10.2.2.1 255.255.255.0 eth2:3 10.3.3.1 255.255.255.0 eth2:4 10.4.4.1 255.255.255.0 eth2:5 10.5.5.1 255.255.255.0 eth2:6 10.6.6.1 255.255.255.0 eth2:7 10.7.7.1 255.255.255.0 eth2:8 10.8.8.1 255.255.255.0 eth2:9 10.9.9.1 255.255.255.0 eth2:10 10.10.10.1 255.255.255.0 eth2:11 10.11.11.1 255.255.255.0 eth2:12 10.12.12.1 255.255.255.0 eth2:13 10.13.13.1 255.255.255.0 eth2:14 10.14.14.1 255.255.255.0 eth3 eth3.2 10.30.30.1 255.255.255.0 eth3.7 10.33.77.1 255.255.255.0

现在,我需要纠正几个问题:

1)我需要的格式是(IFNAME IP地址networking掩码),这意味着我需要将IP /networking掩码上移一行到它相关的IF

2)我想删除当前没有configuration的接口。 在上面的例子中,你可以看到eth2和eth3在物理接口上缺less一个configuration,只有子接口/ vlan被绑在它们之外。

再次感谢您的帮助!

Jenkins将单引号添加到bash shell脚本中

Ubuntu脚本来编译多个Java文件

“权限被拒绝”在启动时运行命令

找不到列表中的文件

是.bashrc进入一个新的bash实例时运行两次?

尝试将以下内容添加到您的命令中:

$ ... | tr -d 'n' | sed 's/eth/neth/g' | awk 'NF>1' eth0 192.168.0.60 255.255.255.0 eth1 1.1.1.1 255.255.255.0 eth2:2 10.2.2.1 255.255.255.0 eth2:3 10.3.3.1 255.255.255.0 eth2:4 10.4.4.1 255.255.255.0 eth2:5 10.5.5.1 255.255.255.0 eth2:6 10.6.6.1 255.255.255.0 eth2:7 10.7.7.1 255.255.255.0 eth2:8 10.8.8.1 255.255.255.0 eth2:9 10.9.9.1 255.255.255.0 eth2:10 10.10.10.1 255.255.255.0 eth2:11 10.11.11.1 255.255.255.0 eth2:12 10.12.12.1 255.255.255.0 eth2:13 10.13.13.1 255.255.255.0 eth2:14 10.14.14.1 255.255.255.0 eth3.2 10.30.30.1 255.255.255.0 eth3.7 10.33.77.1 255.255.255.0

它首先删除所有的新行,把所有东西都拉到一行上,然后使用sed根据eth字段将其拆分成行。 最后,它使用awk来打印只有超过1个字段的行。

(但是,我相信你的整个命令可以进一步简化,看起来你的管道太多了!)

只是为了好玩,你可以在sed中做所有的操作:

ifconfig -a | sed -ne '/^eth/{s/n//;h;n;H;g;s/(S*).*inet addr:([0-9.]*).*Mask:([0-9.]*).*/1 2 3/;p;}'

说明:对于以“eth”开头的每行,删除换行符,然后将该行放入保留空间(h)。 获取下一行(n)并追加该行以保存空间(H)。 用保留空间覆盖当前行(g)。 在组合线上进行替换以提取有用位,然后打印结果。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐