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