]> git.nbdom.net Git - nb.git/commitdiff
sys_interfaces_all
authorNicolas Boisselier <nicolas.boisselier@gmail.com>
Thu, 14 Dec 2023 10:19:07 +0000 (11:19 +0100)
committerNicolas Boisselier <nicolas.boisselier@gmail.com>
Thu, 14 Dec 2023 10:19:07 +0000 (11:19 +0100)
etc/profile.d/sys.sh

index 7ae5242b91fd8dd0b693e31b0a36c657f03c0824..4f53b47dbdee99cb06ca1a25779b95030a7a3f3d 100644 (file)
@@ -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() }\
 ;
 '
 }