出力形式をどのように指定しますか?

出力形式をどのように指定しますか?

次のコマンドの出力形式を指定しようとしています。

MYIP=(/sbin/ifconfig $(getnic) | awk '/inet/ { print $2 } ' | sed -e s/addr://); echo $MYIP

次の出力を生成します。

172.30.0.1 fe80::42:c5ff:fecd:f09f 172.31.0.1 fe80::42:47ff:fe57:2f0d 172.17.0.1 fe80::42:a1ff:fe4e:2508 127.8 fcff:fe19:e54b fe80::bc99:3aff:fe46:dcab fe80::b090:4cff:fecb:3dc4 fe80::9c0f:6dff:fe6b:6c71 fe80::808f:5fff:febb:2669 fe8 23ff:fee4:c87a fe80::4c97:24ff:fe04:ea02 fe80::4cde:e2ff:feb7:4784 fe80::c4fc:4aff:fe67:1863 192.168.1.134 fe80:47

どうすればもっと見やすくなりますか?各ipaddressを別々の行に入力できますか?

編集する:言う;今、すべてのIPを各IPごとに1つずつ別々の行に入力したいと思います。 v6番号を削除するのは良いですが、htatäsは実際には重要ではありません。しかし、これは追加ボーナスになります。

tr、sed、awkを試してみましたが、何か間違っているか間違ったコマンドを使用しているようです。私の考えは、一種のテキスト引数の魔法を達成するために最後に別のパイプを追加することでした。

編集:全体の機能は次のとおりです。

function myip() {
    MY_IP=$(/sbin/ifconfig $(getnic) | awk '/inet / { print $2 } ' | sed -e s/addr://| sort)
    echo -e ${MY_IP:-"Not connected"}
}

ただし、改行文字は印刷されません。今一生懸命働いています。すべてのコメントをお寄せいただきありがとうございます。

ベストアンサー1

現在持っているコマンド文字列の末尾に以下を追加します。

| tr ' ' '\n' 

空白文字を改行文字に置き換えます。

おすすめ記事