как использовать переменную с awk

у нас есть следующий файл

cat /tmp/hive.conf "hive-exec-log4j2" : { "tag" : "TOPOLOGY_RESOLVED", "version" : 2 }, "hive-interactive-env" : { "tag" : "TOPOLOGY_RESOLVED", "version" : 2 }, "hive-interactive-site" : { "tag" : "TOPOLOGY_RESOLVED", "version" : 2 }, "hive-log4j" : { "tag" : "TOPOLOGY_RESOLVED", "version" : 2 }, "hive-log4j2" : { "tag" : "TOPOLOGY_RESOLVED", "version" : 2 }, 

мы хотим захватить строку после совпадения «hive-log4j» из файла

Итак, мы получаем это:

 cat /tmp/hive.conf | awk '/"hive-log4j"/{getline; print}' "tag" : "TOPOLOGY_RESOLVED", 

Теперь мы хотим сделать то же самое с awk и экспортировать переменную следующим образом:

  val="hive-log4j" cat /tmp/hive.conf | awk -v var=$val '/"var"/{getline; print}' 

но нет выхода

что не так с моим синтаксисом?

One Solution collect form web for “как использовать переменную с awk”

/.../ является своего рода константой регулярного выражения, пытающейся найти соответствие строке "var" , а не содержимому var . Пытаться

 awk -v var=$val '$0 ~ var {getline; print}' file 

или же

 awk -v var=$val 'match ($0, var) {getline; print}' file 

Убедитесь, что переменная оболочки содержит двойные кавычки, поскольку они являются частью шаблона. Если это невозможно, попробуйте

 awk -v var=$val 'match ($0, "\"" var "\"") {getline; print}' file 
  • Использование переменных оболочки для параметров команды
  • Добавить два пробела в переменную
  • Interesting Posts

    rsync делает 2 резервных копии, если cron запускается во время записи файла

    Как имитировать добавление нового устройства (USB)?

    Есть ли способ, которым я мог бы выполнять файлы удаленно с файлами, содержащими include?

    Где Netbeans установлен на Ubuntu?

    Почему мой unmounted USB-диск все еще отображается с помощью `fdisk`?

    Потенциальные проблемы (если они есть) при рекурсивной замене пробелов символами подчеркивания во всех именах файлов на жестком диске

    Группируйте содержимое файла двумя полями и суммируйте третье поле

    Как изменить обои для рабочего стола из терминала?

    Считать количество строк в нескольких файлах

    Самый легкий дистрибутив, который запускает LibreOffice Writer

    Проблема Dnsmasq с сетевым пространством имен Linux

    Использование текстового редактора Linux для подготовки контента для Microsoft Word

    cron rsnapshot – еженедельно до ежемесячного

    Grub2 потерян в новой установке Linux-дистрибутива

    Почему нет команды оболочки для создания файлов?

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