используйте -d
опцию даты, например,
date -d yesterday
например
> date
Mon Oct 17 07:36:10 CEST 2016
> date -d yesterday
Sun Oct 16 07:36:17 CEST 2016
вы также можете использовать формат +%
date -d yesterday +%A-%d-%B
воскресенье-16-октябрь
смотрите man date
Это, вероятно, самый простой способ. Обратите внимание, что <
- это пропуск, а |
указывает на то, что символ в строке отличается. (В строке 5 в file1.txt
при копировании пропущены пробельные символы).
$ diff -y file1.txt file2.txt > diff.txt
1 StartInstall, CDM_2.5B263, OK 1 StartInstall, CDM_2.5B263, OK
2 EndInstall, CDM_2.5B263, SUCCESS 2 EndInstall, CDM_2.5B263, SUCCESS
3 StartPatch, CDM_2.5.0.2B1, OK <
4 StartPatch, CDM_2.5.0.3B1, OK 4 StartPatch, CDM_2.5.0.3B1, OK
5 EndPatch, CDM_2.5.0.3B1, SUCCESS | 5 EndPatch, CDM_2.5.0.3B1, SUCCESS
Это не выводит новый файл, но вы получаете сеанс vimdiff, который визуально сравнивает два файла и выделяет недостающие строки и символы очень интуитивно.
$ vimdiff file1.txt file2.txt
Использование comm
, поскольку файлы отсортированы:
comm -3 file1 file2 > result.txt
Вывод содержит строки, которые присутствуют в файле1
, но отсутствуют в файле2
, а также строки, которые присутствуют в файле2
, но не файл1
с префиксом табуляции.
Если файлы не отсортированы, сначала отсортируйте их. Предполагая, что вы используете bash, ksh или zsh, а не простой sh
:
comm -3 <(sort file1) <(sort file2) > result.txt