ifconfig 是一个用来查看、配置、启用或禁用网络接口的工具,要查看eth0网卡配置的ip地址,首先得获取ifconfig命令的输出。

kris@letuknowit:~$ /sbin/ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:16:3e:02:2e:3f  
          inet addr:10.160.55.20  Bcast:10.160.63.255  Mask:255.255.240.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:20591342 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2629969 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1321851438 (1.3 GB)  TX bytes:396217470 (396.2 MB)
          Interrupt:80

上面第二行中就有我们需要的ip地址信息,可以先通过grep找出第二行,也可以直接由awk来做匹配

kris@letuknowit:~$ /sbin/ifconfig eth0 | grep "inet addr" | awk -F'[ :]+' '{print $4}'
10.160.55.20
kris@letuknowit:~$ /sbin/ifconfig eth0 | awk -F'[ :]+' '$0 ~ "inet addr"{print $4}'
10.160.55.20

上面的awk指令中我们用到了自定义多个字段分隔符,指定空格或者冒号作为分隔符。 为什么不是$3而是$4呢? 当awk的字段分隔符不是默认值的时候,每条记录的开头和结尾处的空格不会被忽略,所以$1为空,$2为inet 下面通过管道进行多次awk命令也可以获取到ip地址,比较适合新手。

kris@letuknowit:~$ /sbin/ifconfig eth0 | grep "inet addr" | awk '{print $2}'
addr:10.160.55.20
kris@letuknowit:~$ /sbin/ifconfig eth0 | grep "inet addr" | awk '{print $2}' | awk -F: '{print $2}'
10.160.55.20

转载请注明:知识蚂蚁 » awk面试题:通过awk命令取出服务器eth0网卡配置的ip地址

我来说说

(便于我们更好的交流)

有不明白的地方欢迎留言哦~
取消