bash脚本linux - 处理ifconfig -a输出的输出

时间:2014-05-11 20:25:33

标签: linux bash

我需要处理ifconfig -a的输出 如果将单个设备名称作为脚本的参数给出,我只想打印设备的IP地址。 请帮忙。

2 个答案:

答案 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