Как я могу сократить данные, которые я получаю, после того как я ввожу команду? Например, если я ввел:
ifconfig -a getifaddr
Я только хочу IP-адрес, ничто иное. Конечно, существует что-то еще, что я могу добавить к своей команде для простого точного определения ответов в массовом расходе текста, который получен?
К вашему сведению команда в качестве примера была просто примером
Умное использование каналы обычно является ответом. Например, можно использовать сырые данные ifconfig
вывод:
$ ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.4 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::ca60:ff:fe06:ac5b prefixlen 64 scopeid 0x20<link>
ether c8:60:00:06:ac:5b txqueuelen 1000 (Ethernet)
RX packets 622902 bytes 792538068 (755.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 392538 bytes 37764707 (36.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
И затем вырезают далеко этот вывод, пока Вы не видите информации, которая Вы после:
$ ifconfig eth0 | grep -w inet | cut -d ' ' -f 10
192.168.0.4
Мой собственный выбор оружия:
-w
опция искать только целые соответствия слова. Таким образом, мы не ловим inet6
также. cut
с разделитель (-d
) из пространства и затем выбирает соответствующее полевое (-f
) число для получения информации, которая мы после. существуют многие, много инструментов, чтобы сделать это и несомненно лучший способ выполнить этот конкретный задание. Но этот пример показывает использование каналов и несколько из инструментов, что можно использовать.
Для добавления к ответу andrew.46s, вот то, как можно сделать это с awk и sed. Потребности также умное использование каналов.
ifconfig -a | awk '/inet/{print $2;}' | sed 's/addr://'
делает:
127.0.0.1
192.168.0.12
от:
enp2s0 Link encap:Ethernet HWaddr 18:a9:05:e3:f6:ca
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Interrupt:16
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:13845 errors:0 dropped:0 overruns:0 frame:0
TX packets:13845 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:1594329 (1.5 MB) TX bytes:1594329 (1.5 MB)
wlp6s0 Link encap:Ethernet HWaddr c4:17:fe:20:10:ed
inet addr:192.168.0.12 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::c617:feff:fe20:10ed/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:104772 errors:0 dropped:0 overruns:0 frame:3603935
TX packets:78681 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:90707841 (90.7 MB) TX bytes:14272953 (14.2 MB)
Interrupt:17