Как заменить / удалить несколько строк на месте? - PullRequest
0 голосов
/ 14 января 2019

Я хочу использовать find . -name *.php -exec COMMAND {} \; в системе на основе Debian для удаления шаблона, подобного этому:

<?php
#bVj7Gt#
line1
...
lineX
#/bVj7Gt#
?>

Строка после <?php = хеш + шесть буквенно-цифровых + хеш

Строка перед ?> = хеш + косая черта + шесть буквенно-цифровых + хеш

1 Ответ

0 голосов
/ 15 января 2019

Это может или не может быть тем, что вы ищете (так как вы не предоставили пример ввода / вывода, с которым мы могли бы протестировать), используя GNU awk для RS с несколькими символами:

$ cat file
foo
<?php
#bVj7Gt#
line1
...
lineX
#/bVj7Gt#
?>
bar

$ awk -v RS='<[?]php\n#[[:alnum:]]{6}#.*#/[[:alnum:]]{6}#\n[?]>\n' -v ORS= '1' file
foo
bar

Сделайте это awk -i inplace -v RS=..., если хотите выполнять редактирование на месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...