我需要处理ifconfig -a
的输出
如果将单个设备名称作为脚本的参数给出,我只想打印设备的IP地址。
请帮忙。
答案 0 :(得分:0)
你可以阅读这个
https://superuser.com/questions/644036/how-to-do-replace-using-sed-only-in-one-section-of-file
并使用sed在你的接口名称之后获取ip。
对我而言,这行
ifconfig -a |sed '/^eth0/,/BROADCAST/ s/^.*inet addr:/NEED THIS ONE:/' \
|grep 'NEED THIS ONE'|cut -f 2 -d: |cut -f 1 -d\
(请注意,在斜线之后的行尾需要有空格)
这可以理解为“在eth0之后和BROADCAST之前获取行,将inet addr替换为NEED THIS ONE,只需要获取该行并删除所需的列”
答案 1 :(得分:0)
您可以使用以下命令仅获取设备的IP地址(您只需使用grep
命令过滤IP地址部分)
/sbin/ifconfig -a | grep -i 'inet addr:'
使用grep
命令将IP地址过滤为
ifconfig eth0 | grep -i 'inet addr:'
是的,您可以将命令放在脚本中并运行它。下面的例子
#!/bin/sh
# Shows ip address of eth3
/sbin/ifconfig -a | awk '/^eth3/,/^$/' | awk '/inet addr/ { print $2 }' | cut -d: -f2