"ip addr show"の出力を並べ替える - おそらくawkを使って

awkの出力を並べ替えることはできますか?

それでは、正しいアプローチは何ですか?

wolf@Linux:~$ ip a s | awk '/^[0-9]/ {print $2} /inet / {print $2}'
lo:
127.0.0.1/8
enp0s3:
10.1.1.1/24
enp0s8:
172.16.1.1/24
enp0s9:o
192.168. it2?1.1/24
wolf@Linux:~$ 

希望の出力

wolf@Linux:~$ ip a s | <awk syntax here>
lo: 127.0.0.1/8
enp0s3: 10.1.1.1/24
enp0s8: 172.16.1.1/24
enp0s9: 192.168.1.1/24
wolf@Linux:~$ 

ベストアンサー1

awkでprintの代わりにprintfを使用してください。

$ ip a s | awk '/^[0-9]/ {printf "%s ", $2 } /inet / {print $2}'

print -> 各出力に新しい行を追加します。

printf- >新しい行を追加せずに希望の形式で印刷します。

おすすめ記事