Как выполнить grep файлы, для которых группы имеют права?

Если вы действительно знаете, что делаете, и ваш XML не может быть отформатирован по-другому или содержать ловушки, вам не нужны два шага или сложные сценарии. Этот делает это просто за один проход:

sed -e '/valid="yes"/!b' -e '/\.auth/!N;p;s/\.auth/.newauth/'
  • /valid="yes"/!bпереходит(b)в конец скрипта для строк, не(!)содержащих шаблон, так что все остальное остается как было
  • /\.auth/!Nдля строк, не содержащих (!), содержащих .auth:, для этих строк мы добавляем Nдополнительную строку
  • pТекущее пространство шаблонов (может состоять из одной или двух строк ). Так или иначе, мы дублируем по мере необходимости
  • s/\.auth/.newauth/выполняет требуемую замену. Неизмененная строка/строки уже были pраспечатаны, теперь мы модифицируем ее для дубликата, и она будет напечатана в обычном конце обработки.
  • Шаг 5? Шаг 5 отсутствует.
0
12.10.2021, 22:33
0 ответов

Теги

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