Regex awk для интерфейса Cisco

Я хотел бы знать, есть ли какое-нибудь Sed / Grep или Awk regex для разделения раздела интерфейса Cisco с определенным атрибутом, например, ниже.

Содержимое файла file.txt

! interface FastEthernet0/1 no ip unreachables ! interface FastEthernet0/2 no ip proxy-arp ! 

Автор сценария:

 #!/bin/bash VALUE="no ip proxy-arp" awk -v RS='!\n' -v PATTERN=${VALUE} '/$PATTERN/' file.txt | awk '/^interface/'; exit 0 

Проблема в том, что я запускаю строку непосредственно из оболочки, она работает, но когда я запускаю сценарий, это не работает.

Запуск с bash -x , я вижу, что awk не может заменить значение переменной.

Какие-либо предложения ?

One Solution collect form web for “Regex awk для интерфейса Cisco”

Трудно поверить, что это работает в вашей оболочке. Тем не менее этот код содержит несколько ошибок, а также неправильный подход IMHO.

awk ожидает строку между // не переменной. Это постоянные регулярные выражения. Таким образом, вы либо заставляете оболочку помещать переменную туда, либо используете ~ .

Ваш подход с исправлениями:

 awk -v RS='!\n' -v PATTERN="${VALUE}" '$0 ~ PATTERN' file.txt | awk '/^interface/' 

Я удивлен, что это работает. Из документации я ожидал, что из-за установки RS нежелательный «!» будут напечатаны. Однако я считаю это лучше:

 awk -v PATTERN="${VALUE}" \ '$0 ~ PATTERN { print previousline; }; { previousline=$0; }' file.txt 

или с жестко закодированным рисунком

 awk '/no ip proxy-arp/ { print previousline; }; { previousline=$0; }' file.txt 

или с оболочкой, пишущей шаблон

 awk /"$VALUE"/' { print previousline; }; { previousline=$0; }' file.txt 
  • Установка Packet Tracer на устройства ARM
  • Выполните Cisco Doctor Doctoring на FreeBSD
  • Как мы можем изменить шлюз в netstat -rn output
  • Интерфейс Linux RX Packet Выпало из LACP и не выполняет loadbalacing
  • Доступ к VPN из Ubuntu 12.04
  • Asterisk и NAT: регистрация SIP и IAX не удалась при удаленном соединении за NAT
  • Можно ли одновременно запускать два VPN-клиента?
  • Изменение маршрутов для VPN
  • Как я могу использовать arptables для ограничения количества исходящих запросов ARP в секунду?
  • Несколько telnet-соединений в цикле Expect while
  • Как остановить openconnect от изменения настроек DNS
  • Будет ли Open VPNC-клиент Linux (red-hat) подключаться к шлюзам или шлюзам Nortel VPN?
  • Interesting Posts

    Нужно ли просто включать файл .netrc, чтобы UNIX забирал его?

    VirtualBox: Гость Debian неожиданно загружается только в Интерактивную оболочку UEFI

    переименование нескольких файлов путем удаления случайных чисел

    Canot удаляет символические ссылки: после перезагрузки появляются символические ссылки

    передача двух переменных потоков в качестве входных данных в awk в скрипте

    Могу ли я перемонтироваться как только для чтения, если используется образ подкачки?

    Сценарий LFTP для загрузки файлов

    помощь, необходимая для расшифровки этого ACPI-кода Acer Aspire 4830TG для Nvidia Optimus

    USB-порты, не работающие с Ubuntu Linux 14

    Узнайте, существуют ли файлы в папке под другим именем в другой папке

    Как мне узнать, сколько времени занимает pg_restore в командной строке?

    Код выхода по умолчанию при завершении процесса?

    Какие ограничения необходимы для ключа SSH для ограничения сохранения и записи файлов только через SSHFS?

    Защита устройств от команд dd и fdisk

    Я получаю предупреждение о нехватке дискового пространства после моего последнего обновления

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