У меня есть текст, который занимает несколько строк
... someabove text
jpqpq====== mcvnmcv
.... s;ql[[pw]]
<<<<<< uyuuey
... middle text
jhasjh ======dsadsas
.... grqywtrt
klklk <<<<<<alallal
... someend text
Я хочу удалить весь текст из ====== till <<<<<<
В sublime text
я использую
найти:(?s)(======(?:(?!======).)*?<<<<<<)
replace:
и все вхождения удалены, а выходные данные выглядят
... someabove text
jpqpq uyuuey
... middle text
jhasjh alallal
... someend text
Теперь я хочу сделать это с помощью командной строки, используя sed or awk or anything
.Потому что каждый раз открывать файл и заменять его утомительно
Но я искал sed и awk, я обнаружил, что они не поддерживают регулярные выражения, отличные от нуля.и в этих случаях используется perl
Может ли кто-нибудь подтвердить, что sed и awk не могут использовать такие шаблоны, как этот (======(?:(?!======).)*?<<<<<<)
, и должны попробовать некоторые косвенные способы.
Тем не менее я ищу, каксделать это с помощью sed и awk (даже косвенно), а также perl (если разрешен просмотр)
с perl также не сработало
perl -ne 's/"(======(?:(?!======).)*?<<<<<<)"/""/g; print' file
пустой вывод