Я хочу узнать, что было добавлено в файл журнала между двумя задачами. Прямо сейчас, как я это делаю:
содержание test.log изначально
aaa
bbb
сохранение содержимого журнала
$ cp test.log test.log.before
делать что-то
содержимое test.log после чего-либо
aaa
bbb
ccc
сохранение содержимого журнала
$ cp test.log test.log.after
показывая разницу
$ diff test.log.before test.log.after
2a3
> ccc
Что мне не нравится в этом методе, так это то, что я слышу шум от diff
(2a3
и >
) а я просто хочу ccc
.
В: Есть ли способ просто узнать разницу между двумя файлами журнала (т.е. что нового в test.log.after, ccc
)?
Я смотрел на страница руководства diff но я не вижу там ничего очевидного.
Если вы всегда делаете до и после, так что конец файла после будет содержать новый контент, вы можете использовать комм.
$ cat before
aaa
bbb
$ cat after
aaa
bbb
ccc
$ comm -3 after before
ccc
Если вы хотите получить только дополнения, вы можете отфильтровать вывод, например:
$ diff test.log.before test.log.after | grep "^>" | cut -c 3-
Однако вы потеряете удаления, если таковые имеются.