Форматирование 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/' но это, похоже, не разбивается на двойное пространство.

  • Прочитайте строку из файла, манипулируйте, а затем добавьте в другой файл
  • Заменить с sed до совпадения в строке
  • Как выделить данную строку в данном месте?
  • Найти текст между вкладкой (\ t) в качестве разделителя
  • sed regex для группы захвата между разделителями
  • Как добавить новые строки из другого файла с помощью sed
  • Чтобы удалить новые строки после пустой строки
  • Файлы Concat 1000 в каталоге
  • 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

    Не удалось загрузить Linux / Windows, так как в BIOS нет загрузочных записей

    Перенос ключей Caps Lock и Windows для отдельных модификаторов

    Использование назначений makefile из сценария оболочки

    Как зарезервированные блоки GDT используются после изменения размера сети в файловой системе ext3

    Как получить расположение каталога кеша apt?

    Копирование файла с использованием scp в несуществующий локальный каталог – вводящее в заблуждение сообщение об ошибке

    Как использовать нестандартную логин для входа в ssh login

    Обмен неограниченным количеством столбцов

    Сценарий Bash для удаления каталогов старше 5 дней?

    Захват текстового снимка псевдотерминала

    Проблема Gmond в ганглиях

    Значение параметра не устраняется

    Как отладить запущенное GUI-приложение с ошибкой?

    Подсчитывать строки с разными символами

    Поиск и удаление больших файлов, открытых, но удаленных

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