- diff -u
pode ser o que você precisa para sua tarefa.
Para pegar seu exemplo e usar diff -u
michael@x071:[/home/michael]diff -u file?
--- file1 2016-11-24 07:48:41 +0000
+++ file2 2016-11-24 07:48:57 +0000
@@ -1,3 +1,3 @@
orange
apple
-peach
+strawberry
Espero que isso ajude com sua tarefa
Um conselho - RTM - ou - Leia o manual. Muitas vezes há outras opções. FYI: as opções históricas de diff (e diff3 ao comparar três arquivos) foram para auxiliar na criação do "programa inout" que mudaria o arquivo1 para o arquivo2 (ou o arquivo2 de volta para o arquivo1). Esta tem sido a base de todo o software "controle de versão".
As opções de diferenças das quais me lembro há muito tempo:
- -e: Produz saída em um formato adequado para uso com o editor ed para converter Arquivo1 em Arquivo2.
- -f: Produz saída em um formato não adequado para uso com o editor ed, mostrando as modificações necessárias para converter Arquivo1 em Arquivo2 na ordem inversa daquela produzida sob o sinalizador -e.
- -n: Produz uma saída semelhante àquela do sinalizador -e, mas na ordem oposta e com uma contagem de linhas alteradas em cada comando de inserção ou exclusão. Esta é a forma usada pelo sistema de controle de revisão (RCS).
A última opção que vou destacar é uma "nova" - relativamente falando. (também vários anos, mas muitas vezes não estava em implementações POSIX). Em vez de criar saída adequada para 'ed' de 'RCS', isso é adequado para 'patch'
- -u: Produz uma comparação do comando diff com três linhas de contexto unificado. A saída é semelhante àquela do sinalizador -c, exceto que as linhas de contexto não são repetidas; em vez disso, o contexto, as linhas excluídas e adicionadas são mostradas juntas, intercaladas.
IMHO: o valor da chave do diff -c é como uma melhoria em relação ao comando 'cmp' - quando você quer saber mais do que SOMENTE se dois arquivos diferem ou não. Eu nunca tinha prestado atenção (talvez seja uma opção "nova" também) - mas deve pensar nisso quando a minha pergunta for uma busca recursiva por arquivos que diferem entre duas árvores de diretório.