Вероятно, вы ищетеcomm
:
$ comm <(sort file1.csv) <(sort file2.csv)
1,2,3,4
5,6,7,8
9,10,11,12
9,9,11,12
9,9,9,9
По умолчанию он печатает строки, присутствующие только в первом файле, в качестве первого столбца, присутствующие в обоих файлах — во втором столбце и только во втором файле — в третьем столбце. Вы можете использовать -1
, -2
или -3
, чтобы скрыть любой из этих столбцов. Например:
Показать только те, которые есть в обоих файлах:
$ comm -12 <(sort file1.csv) <(sort file2.csv)
1,2,3,4
5,6,7,8
Показать только те строки, которые есть в первом файле, но не во втором:
$ comm -32 <(sort file1.csv) <(sort file2.csv)
9,10,11,12
Показать только те строки, которые есть во втором файле, но не в первом:
$ comm -31 <(sort file1.csv) <(sort file2.csv)
9,9,11,12
9,9,9,9
Unix, в отличие от Windows, позволяет удалять файлы, пока они открыты и используются приложением. Еще более вероятно, что KeePass только что прочитал файл в память и не держит файл открытым, потому что данные на диске -зашифрованы, поэтому содержимое расшифровывается в память, а затем файл закрывается.
Может быть множество различных причин, по которым файл паролей был удален, независимо от того, что делало приложение.