No momento, estou tentando alterar o conteúdo de um arquivo
orig.sas
para corresponder ao conteúdo de um arquivo atualizado
new.sas
Substituir orig.sas por new.sas faz algumas das mudanças, mas há muitos diretórios referenciados em orig.sas que eu não quero alterar.
O envio do código a seguir gera um script 'changes.txt' com todas as linhas necessárias para serem alteradas em orig.sas para torná-lo idêntico a new.sas
diff -e orig.sas new.sas > changes.txt
change.txt se parece com isso (a saída completa tem muito mais linhas):
3668c
label DBMS=xlsx replace;
.
3649,3665d
3643d
A partir daqui, removi todas as linhas que fazem referência a alterações nos diretórios, portanto, apenas o corpo do código é afetado.
Acho que devo enviar esse script para o sed (com o objetivo de fazer todas as alterações no arquivo change.txt) usando algo como:
sed - orig.sas < changes.txt
Mas não quero sobrescrever diretamente o orig.sas, preferindo enviar para um arquivo da versão 2 (por exemplo, orig_v2.sas)
Meu progresso até este ponto veio da instrução de https://www.computerhope.com/unix/udiff.htm
diff -e
O resultado de deve ser alimentado (modificado) paraed
.tentar
Onde
wq
irá escrever e sair, imprimindo o número de caracteres escritos--silent
não produzirá acima da contagem.consulte
man ed
para mais informações.editar
Não vejo sentido em aplicar diferenças ao arquivo original, parece-me que
cp new.sas orig_v2.sas
isso fariaSuponho que você tenha isso em mente: dois ramos
alpha
N ebravo
Nisso irá relatar
bravo
N alterações feitas emalpha
N