Este é um ex
one-liner. ( ex
é a forma predecessora e com script de vi
.)
printf '%s\n' '$?pattern2?/pattern1/d' x | ex file.txt
O x
salva e sai. Altere-o para %p
se você quiser apenas imprimir o arquivo alterado, mas não salvar as alterações (boas para testes).
$
significa última linha do arquivo; ?pattern2?
é um endereço que significa o primeiro resultado de uma busca para pattern2
a partir da posição atual; /pattern1/
é um endereço de pesquisa avançada e d
é o comando de exclusão de linha.
Use ex
quando precisar de encaminhamento E para trás.
Você pode fazer a mesma coisa interativamente em vi
ou Vim:
vim file.txt
Em seguida, digite
:$?pattern2?/pattern1/d
e pressione Enter.
Em seguida, salve e saia com :x
Enter.