Форматирование ifconfig с помощью sed / awk

Я использую ifconfig на OpenSUSE. Когда я запускаю ifconfig eth0 я получаю

 eth0 Link encap:Ethernet HWaddr CE:FD:75:DF:A5:6D inet addr:172.16.4.177 Bcast:172.16.5.255 Mask:255.255.254.0 inet6 addr: fe80::adfd:75ef:fedf:v56d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:11812456 errors:0 dropped:2 overruns:0 frame:0 TX packets:7000495 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2591436376 (2471.3 Mb) TX bytes:9196901478 (8770.8 Mb) 

Я ищу формат, чтобы каждый параметр возвращался в новой строке с помощью sed или awk например:

  eth0 Link encap:Ethernet HWaddr CE:FD:75:DF:A5:6D inet addr:172.16.4.177 Bcast:172.16.5.255 Mask:255.255.254.0 inet6 addr: fe80::adfd:75ef:fedf:v56d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:11812456 errors:0 dropped:2 overruns:0 frame:0 TX packets:7000495 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2591436376 (2471.3 Mb) TX bytes:9196901478 (8770.8 Mb) 

Я пробовал ifconfig eth0 | sed 's/ /\r/' ifconfig eth0 | sed 's/ /\r/' но это, похоже, не разбивается на двойное пространство.

  • vi - заменить символы из части строки
  • Заменить 1-й с 1), 2-й с 2), ... в GNU Sed
  • подсчеты совпадений и несоответствий
  • sed для сопоставления между совпадающими фигурными фигурными скобками
  • Способ использования `/ usr / bin / env sed -f` в shebang?
  • Удалить ведущее 0 из определенного поля
  • Способ вставки определенного столбца, когда в терминале
  • Перемещение одного файла за раз, исходя из определенного числа в файлах
  • 2 Solutions collect form web for “Форматирование ifconfig с помощью sed / awk”

    Вы можете начать с

     sed 's/\(:[^: ]\+\) \([^(]\)/\1\n\2/g;s/\()\)/\1\n/;s/^ \+//' 

    он должен быть достаточно близко, и, скорее всего, его можно упростить и оптимизировать. Результат:

     eth0 Link encap:Ethernet HWaddr CE:FD:75:DF:A5:6D inet addr:172.16.4.177 Bcast:172.16.5.255 Mask:255.255.254.0 inet6 addr: fe80::adfd:75ef:fedf:v56d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:11812456 errors:0 dropped:2 overruns:0 frame:0 TX packets:7000495 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2591436376 (2471.3 Mb) TX bytes:9196901478 (8770.8 Mb) 

    Следующий сценарий использовал промежуточную подстановку to = symbol (вы можете свободно изменять любой, который вам нужен):

     #!/bin/sed -f s/\s\+\s/=/g /:[^=:]\+:/s/:[^=:]\+ /&=/g s/^=/\t/ s/ *=$// s/ *=/\n\t/g 

    Так

     ifconfig eth0 | sed -f script.above 

    выходы:

     eth0 Link encap:Ethernet HWaddr 74:2f:68:8b:b8:6e inet addr:192.168.1.247 Bcast:192.168.1.255 Mask:255.255.255.224 inet6 addr: fe80::762f:68ff:fe8b:b86e/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3128543 errors:0 dropped:1 overruns:0 frame:0 TX packets:1346967 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4538616348 (4.5 GB) TX bytes:118149772 (118.1 MB) 
    Interesting Posts

    Настройте определенную частоту с моей беспроводной карты

    Как установить драйвер nvidia (gt 755m) на Fedora 20?

    Как получить шлюз по умолчанию, если netstat / ifconfig и ip недоступны?

    systemd-modules-load ошибки печати при загрузке встроенных модулей ядра

    Настройка зашифрованного свопа в LMDE (debian)

    Как включить прокрутку двумя пальцами без параметров трекпада?

    Поиск количества файлов в системе btrfs без использования find

    CentOS / http2 / ALPN

    Свежая установка CoreOS зависает во время загрузки

    Самый быстрый способ прочитать последнюю строку в шаблоне нескольких файлов с тем же расширением

    запустить команду для нескольких потоков

    Что такое команда для поиска приоритета процесса в Linux?

    Я пытаюсь скопировать файлы с сервера в мой локальный каталог с помощью rsync.I не хочу копировать файлы, которые были скопированы ранее и удалены

    Команда Bash read и перенаправление stdin

    размещение кого-то на серверах IRC через Интернет

    Linux и Unix - лучшая ОС в мире.