Following is my ifconfig output
eth0 Link encap:Ethernet
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:28 Base address:0x2000
eth1 Link encap:Ethernet
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:36497 errors:0 dropped:0 overruns:0 frame:14515
TX packets:44884 errors:1352 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:20781745 (20.7 MB) TX bytes:17776225 (17.7 MB)
Interrupt:17 Base address:0xc000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:720 (720.0 B) TX bytes:720 (720.0 B)
virbr0 Link encap:Ethernet
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:4416 (4.4 KB)
vmnet1 Link encap:Ethernet
inet addr:192.168.185.1 Bcast:192.168.185.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
vmnet8 Link encap:Ethernet
inet addr:192.168.207.1 Bcast:192.168.207.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
How do I use grep to extract the IP address corresponding to each LAN card?
Is that possible? How can it be achieved?
Aw man I can't resist trying to improve my perl oneliner scripting ability when I see a post like this. Here's a first hacky attempt:
That could be tightened up a lot, and it has lots of problem like it doesn't handle ipv6 addresses, etc.
This is how I do it:
ip addr show | grep inet | awk -F " " '{print $NF"|"$2}'
This is what I use
How about
On your output, that returns
for me.
Horribly ugly, and only good for IPv4:
ifconfig | grep addr > myipaddr.txt
Not sure how portable this is, but you can avoid the whole sed/grep/awk/perl etc with the
hostname
command and either-i
or-I
(I recommendhostname -I
):For example: