From: Nicolas Boisselier Date: Thu, 14 Dec 2023 10:19:07 +0000 (+0100) Subject: sys_interfaces_all X-Git-Url: https://git.nbdom.net/?a=commitdiff_plain;h=1240287c78a50b7212305252045afa3b28499cab;p=nb.git sys_interfaces_all --- diff --git a/etc/profile.d/sys.sh b/etc/profile.d/sys.sh index 7ae5242b..4f53b47d 100644 --- a/etc/profile.d/sys.sh +++ b/etc/profile.d/sys.sh @@ -190,33 +190,17 @@ sys_interfaces() { sys_interfaces_all | cut -f1 } -sys_interfaces_all2() { +sys_interfaces_all() { ip addr | awk '\ -BEGIN{name=mac=addr=""}\ -\ -match($0, /^[0-9]+: ([^:]+)/,m) && m[1] !~ /(^lo$)|@/ {\ +BEGIN{ name=mac=addr=""; }\ +function rec() {\ if (name) printf "%s\t%s\t%s\n", name, mac ,addr;\ name=mac=addr="";\ -name=m[1];\ -\ }\ +match($0, /^[0-9]+: ([^:]+)/,m) && m[1] !~ /(^lo$)|@/ {rec(); name=m[1];}\ match($0, /^ +link\/ether ([^ ]+)/,m) {mac=m[1]}\ match($0, /^ +inet ([^ \/]+)/,m) {addr=m[1]}\ -0 && name && mac && addr{print name"\t"mac"\t"addr; name=mac=addr=""}\ -; -' -} - -sys_interfaces_all() { - ip -d -j a | sed "s/ifindex/\nifindex/g" | awk '\ -BEGIN{i=0; j=0}\ -/"link_type":"loopback"/{next}\ -/"info_kind":"veth"/{next}\ -/"ifname":/{i++}\ -match($0, /"ifname":"([^"]+)"/, m) {printf "%s\t", m[1]}\ -match($0, /"address":"([^"]+)"/, m) {printf "%s\t", m[1]}\ -match($0, /"local":"([0-9\.]+)"/, m) {printf "%s", m[1]}\ -i!=0{print ""}\ +END{ rec() }\ ; ' }