Сценарий Unix -Для определенного шаблона необходимо выйти из хвоста -f и использовать awk для запуска отдельного сценария

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

Чтобы всегда проверять пару двух линий, используйте шаблон N;P;Dв sed:

.
sed 'N;P;\_</ac:image>\n *</a>$_d;D' filename

Как это работает?

  • Nдобавляет следующую строку. Обычно вы делаете $!N, чтобы проверить, есть ли вообще следующая строка, но в вашем случае это не проблема. :Если следующей строки нет, ничего особенного не происходит.
  • Теперь, когда в вашем буфере две строки, Pпечатает первую строку
  • \_</ac:image>\n *</a>$_ddудаляет пространство шаблона, если вы найдете заданный шаблон из двух строк (\n— это новая строка между строками ). Первая строка уже была напечатана, поэтому при удалении пространства шаблона удаляется только вторая строка пары
  • .
  • Последний оператор выполняется только в том случае, если шаблон не совпал. Dудаляет первую строку (и новую строку )и перезапускает цикл со второй строкой пары,поэтому проверяется каждая пара строк
1
30.08.2021, 20:33
0 ответов

Теги

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