Se o bloco de texto a ser removido ocupar várias linhas, e se cada arquivo individual couber confortavelmente na RAM, a abordagem mais fácil é carregar cada arquivo inteiramente na RAM e executar uma substituição global de string. O Perl torna isso fácil, com -i -p
para modificar os arquivos no local por registro e -0777
para não definir nenhum separador de registro (o separador de registro padrão é uma nova linha).
perl -0777 -i -pe '
BEGIN {
open BLOCK, "<", "/home/user/myblock.txt";
$block = <BLOCK>;
die unless length($block);
close BLOCK;
}
s/\Q$block//g
' /home/user/rep/*