Não sei se entendi o que você está tentando alcançar. Eu acho que o cenário é como:
- Existe um arquivo de texto grande
A. - Existe um arquivo de texto grande
B, que compartilha a maioria das linhas comA, mas há diferenças. - Você deseja fazer backup de todas as informações, mas não deseja copiar / transmitir / armazenar os dois arquivos como estão. Em vez disso, sua idéia é armazenar
Ae as informações mínimas suficientes para reproduzirBdeA.
Se sim, então diff e patch são as ferramentas que você precisa.
O procedimento básico é bastante simples. Supondo que você tenha A e B (e nenhum arquivo chamado A2B.patch porque será sobrescrito) em seu diretório atual, execute:
diff A B > A2B.patch
Então, se você tiver A e A2B.patch (e não B ), poderá recriar B com:
patch -o B A A2B.patch
Nota: " A2B.patch " é apenas um nome arbitrário que eu escolhi; pode ser " foo ".
As ferramentas funcionam com linhas. Quanto menos linhas comuns você tiver, menos eficaz será essa solução.
Se eu interpretar seu script corretamente, seu B é a saída de sqlite3-to-mysql.py A . Eu não sei o que o sqlite3-to-mysql.py faz exatamente, nem sou profundo o suficiente no SQL para adivinhar de forma confiável. Se mudar a maioria das linhas de A para criar B , minha solução será inútil. Quero dizer: ainda deve funcionar, mas patch será maior que B , por isso vai perder o ponto.
Talvez seja só executar diff A B > patch uma vez e verificar se patch é pequeno o suficiente para o seu propósito.
Estude man 1 patch e man 1 diff para saber mais. Eu também estava consultando este site enquanto escrevia minha resposta.