ip a | egrep '([0-9]{1,3}\.){3}[0-9]{1,3}|enp0s' | grep -e 10 -e 172 -e 192 | awk '{print $2}' | awk '{gsub("/24", "");print}' | xargs
上記のコマンドの出力は次のようになります。
enp0s3: 10.0.2.15 enp0s8: 192.168.56.100
ネットワークカード名で始まる2行を使用して出力を異なる方法で印刷したいと思います。
目的の結果を得るには、出力をどのように編集する必要がありますか?
ベストアンサー1
私の考えであなたが探しているのは
ip a | awk '/inet .*enp[0-9]*s[0-9]*/ { print $NF " " gensub(/\/[0-9]*/,"",1,$2); }'
複数のenp0を許可するようにインターフェイス名の一致を変更しました(私のシステムでは、多くのインターフェイスがenp2s *です)。また、ipv6アドレス( 'inet6')を除く 'inet'と行を一致させました。