Hi everyone.
I'm trying to do a sed one-liner but can't seem to get it to work...
I want to parse ifconfig -a output and print the line which follows the
line with the regular expression of "BROADCAST.*IPv4". End goal is to
get the IP Address and netmask of the first non-loopback IPv4 interface.
So when I see this:
---
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu
8232 index 1
inet 127.0.0.1 netmask ff000000
e1000g0: flags=1004843<UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4> mtu
1500 index 3
inet 10.132.145.68 netmask fffffe00 broadcast 10.132.145.255
lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu
8252 index 1
inet6 ::1/128
e1000g0: flags=20002004841<UP,RUNNING,MULTICAST,DHCP,IPv6> mtu 1500 index 3
inet6 fe80::223:18ff:fe72:3644/10
schwa...@jslaptop:~/test$ ifconfig -a | grep BROADCAST | grep IPv4
e1000g0: flags=1004843<UP,BROADCAST,RUNNING,MULTICAST,DHCP,IPv4> mtu
1500 index 3
---
I want to output this:
inet 10.132.145.68 netmask fffffe00 broadcast 10.132.145.255
Everywhere I google I see that the following should work:
ifconfig -a | /usr/bin/sed -n '/BROADCAST.*IPv4/{n;p}'
but I get an error with /usr/bin/sed instead:
sed: command garbled: /BROADCAST.*IPv4/{n;p}
More confusing to me is when I remove the {} I get too much output:
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu
8232 index 1
inet 127.0.0.1 netmask ff000000
inet 10.132.145.68 netmask fffffe00 broadcast 10.132.145.255
lo0: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu
8252 index 1
inet6 ::1/128
e1000g0: flags=20002004841<UP,RUNNING,MULTICAST,DHCP,IPv6> mtu 1500 index 3
inet6 fe80::223:18ff:fe72:3644/10
(actually, this is all the lines except the one I am searching for)
When I run gnu sed, then it works.
ifconfig -a | /usr/gnu/bin/sed -n '/BROADCAST.*IPv4/ {n;p}'
inet 10.132.145.68 netmask fffffe00 broadcast 10.132.145.255
Questions:
1) Is using gnu sed a problem if this code is for an auto-installer project?
2) What am I doing incorrectly above? How do I "un-garble" the
/usr/bin/sed command?
Thanks,
Jack
_______________________________________________
caiman-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/caiman-discuss