É muito fácil modificar minha solução para a outra pergunta. Basta remover o next
:
perl -ne 'if(/XYZ/){$a=1} ; $a==1 ? print STDERR : print STDOUT;' file >f1 2>f2;
Isso criará f1
com tudo até XYZ
e f2
com todo o resto, incluindo XYZ
.
Como alternativa, a resposta aceita da pergunta à qual você se vinculou faz praticamente o que você precisa. Apenas mantém XYZ
no primeiro arquivo. Para tê-lo no segundo, basta inverter os dois comandos awk
:
awk '/XYZ/{out="file2"}{print >out}; ' out=file1 file