Tenho certeza que você pode fazer:
cat ./tmp[12] | sed -f - ./wrong_file >outfile
Pelo menos, isso não causará problemas se todas as instruções do script de sed
forem específicas do número da linha. Não há necessidade de aplicar os scripts separadamente - você pode encadear todos eles e executar o script de uma só vez.
O fato de você ter que fazer isso, no entanto, é indicativo de trabalho duplicado. Aqui é uma cópia de um script sed
que evitaria escrever qualquer um desses arquivos temporários em primeiro lugar e simplesmente digitalizar a entrada para as linhas que precisam ser alteradas antes de passar todo o script em um fluxo até o sed
final de uma só vez:
{ sed '/^#\.tid\.setnr/!d;=;g;G' |
paste -d'c\\n' - - - ./addfile
} <./mainfile | sed -f - ./mainfile
Sua saída não é idêntica aos dados de amostra aqui, pois ela é personalizada para as amostras fornecidas na outra pergunta . Mas evita escrever os scripts de modificação e envia todos os comandos de edição para um processo sed
, que pode agir imediatamente.
Em geral, você pode considerar que um processo sed
está tão pronto para manipular sua entrada de script em todas as formas como ele também pode estar pronto para lidar com sua entrada de conteúdo de edição .-