
Как можно ip addr show
отображать только ссылки определенного типа, не используя вторичный процесс вроде grep для фильтрации?
В соответствии счеловек 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)