`ip addr show` で特定のタイプのリンクのみを表示する方法

`ip addr show` で特定のタイプのリンクのみを表示する方法

ip addr showgrep などの二次プロセスを使用してフィルタリングせずに、特定のタイプのリンクのみを表示するにはどうすればよいでしょうか?

によると男8 IPアドレス、これは次のようにして実行できるはずですが、実行しても結果は得られません。

ip addr show type "link/loopback"
ip addr show type "loopback"

答え1

短くてシンプル:

hostname -i

通常、私はループバックではなくIPを探しているので

hostname -I 

テキストのノイズを減らして色を追加したい場合は

ip addr | grep inet 

答え2

私はこれを Python で実行しました。grep を使用してこれを翻訳することは試していません。

import re
import shlex
import subprocess

""" Return a list of interface name strings """

RE_PATT = "^\d+: (\w+).+\n +link/loopback"
proc = subprocess.run(
    shlex.split("ip link show"),
    stdout=subprocess.PIPE,
    universal_newlines=True,
)
interface_list = re.findall(RE_PATT, proc.stdout, re.MULTILINE)

関連情報