Как искать строку перед шаблоном с помощью sed или grep

Я нашел ответ (для apt -get not вообще для samba install)в этой теме для apt -get .

Команда debconf-set-selectionsпомогла мне задать ответ перед началом установки.
Если вы хотите ответить «да», вы можете использовать следующие команды:

echo "samba-common samba-common/workgroup string  WORKGROUP" | sudo debconf-set-selections
echo "samba-common samba-common/dhcp boolean true" | sudo debconf-set-selections
echo "samba-common samba-common/do_debconf boolean true" | sudo debconf-set-selections
sudo apt-get install samba -y

0
11.11.2020, 20:38
2 ответа

Использованиеawk:

awk -F'/' '/^SQL> @/{ filename=$NF; next } /^ORA-/{ print filename; }' infile
2
18.03.2021, 22:50

Вот версия sedсxargs:

sed -n '/^SQL> @/{s/^SQL> @//;h};/^ORA-/{g;p;}' output.log | xargs -L1 basename
  • -nподавляет вывод по умолчанию, поэтому будут отображаться только строки с явной командой печати
  • Первое совпадение sedпринимает только путь и имя файла и удерживает их(h)в буфере
  • Второе совпадение sedполучает содержимое буфера(g)и печатает его(p)
  • xargsотправляет каждую строку вывода на basename, который отображает только часть имени файла
1
18.03.2021, 22:50

Теги

Похожие вопросы