Se você deseja obter somente as adições, pode filtrar a saída como:
$ diff test.log.before test.log.after | grep "^>" | cut -c 3-
No entanto, você perderá as exclusões, se houver.
Eu quero descobrir o que foi adicionado a um arquivo de log entre duas tarefas. Agora o jeito que eu faço é:
conteúdo do test.log inicialmente
aaa
bbb
salvando o conteúdo do log
$ cp test.log test.log.before
fazendo algo
conteúdo do test.log depois de fazer algo
aaa
bbb
ccc
salvando o conteúdo do log
$ cp test.log test.log.after
mostrando a diferença
$ diff test.log.before test.log.after
2a3
> ccc
O que eu não gosto com este método é que eu recebo algum ruído de diff ( 2a3 e > ) enquanto eu quero apenas ccc .
P: Existe uma maneira de eu conseguir a diferença entre os dois arquivos de log (ou seja, o que há de novo em test.log.after, ccc )?
Eu dei uma olhada na página man do diff mas não vejo nada óbvio lá .
Se você sempre faz um antes e depois de tal que o final do arquivo após irá conter o novo conteúdo, então você poderia usar comm .
$ cat before
aaa
bbb
$ cat after
aaa
bbb
ccc
$ comm -3 after before
ccc