Как я могу использовать регулярное выражение для извлечения текста, следующего за двумя условиями, в переменную?

Я хотел бы извлечь параметр для данного хоста в файле ssh_config и поместить его в переменную.

Host mysite HostName 123.1.1.1 User myuser Port 13245 GSSAPIAuthentication no IdentityFile /home/myuser/.ssh/id_dsa Host anothersite HostName 321.2.2.2 User myuser Port 22 GSSAPIAuthentication no IdentityFile /home/myuser/.ssh/anothersite_dsa 

Мне нужно сопоставить первое вхождение значения для данного параметра после того, как имя узла было сопоставлено первым. Я только начал изучать базовое регулярное выражение, и это насколько я получил сам, но у меня слишком много времени на это и я могу использовать некоторую помощь. Скрипт находит первое вхождение «IdentityFile» после того, как он соответствует «Host mysite» и заменит слово «IdentityFile» на «test».

 IDF="IdentityFile" HOST="mysite" get_host_option() { option="$IDF" [ -f /etc/ssh/ssh_config ] || return perl -0pe 's/(?<=Host[[:space:]]'"$HOST"')(.*?)'"$option"'/$1test/s' /etc/ssh/ssh_config } get_host_option "$IDS" 

Мне нужен путь, который был установлен для IdentityFile для размещения в переменной. Чтобы я мог это сделать так.

 ssh-add $IDPATH 

One Solution collect form web for “Как я могу использовать регулярное выражение для извлечения текста, следующего за двумя условиями, в переменную?”

Попробуй это :

 perl -0ne 'print $& if /^Host.*?IdentityFile\s+\K[^\n]+/ms' file 
  • Выберите последний файл, основанный на порядковом номере, указанном в имени файла
  • Ограничьте каталоги, в которых будет действовать скрипт
  • Как вы опускаете «./» при запуске скриптов в текущем каталоге
  • Shell Script считывает метаданные файла, а затем mv каждый в новый каталог
  • Список файлов на основе даты и времени в имени файла
  • Тело нулевого сообщения; надеюсь, что все в порядке
  • Почему тире расширяется \\\\ по-разному до bash?
  • Как эмулировать возвращаемые произвольные значения из функций оболочки?
  • сравнить строку в bash
  • BASH: массив как строковый буфер
  • выйти из сценария оболочки из подоболочки
  • Interesting Posts

    Как найти функцию zsh, связанную с виджетами zle?

    Компьютер не загружается с любого носителя после установки вина на Ubuntu 13.10

    grep и sed в конкретных

    Ввернул файл lightdm.conf, что теперь?

    Msgstr "lsof: невозможно прочитать namelist из / dev / ksyms" в Solaris

    Извлечение определенной папки из tarball – как я могу рассказать, где выложить файл после его извлечения?

    Как поменять драйвер сетевого устройства на работающем Debian Linux окне?

    Запуск скрипта каждый раз, когда установлено новое ядро

    Каковы действительные ключи для tmux?

    Кто создает документы / видео / изображения / и т. Д. в домашнем каталоге

    В чем причина того, что функция lseek возвращает дескрипторы файлов как длинные целые числа?

    манипулировать «внутренней» переменной Drush

    Как права на каталоги остаются такими же после команды mv?

    Файлы, созданные fallocate по сравнению с обычными текстовыми файлами

    Как синхронизировать закладки (избранное) между Google Chrome и Chromium

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