Могу ли я сравнить два текстовых файла, пропуская N символов от начала каждой строки?

Например, файл1:

2018-05-31 12:00:00 This is the first line of text.
2018-05-31 12:00:00 This is the second line of text.
2018-05-31 12:00:00 This is the third line of text.
2018-05-31 12:00:00 This is the forth line of text.
2018-05-31 12:00:00 This is the fifth line of text.

И файл2:

2018-05-31 12:00:01 This is the first line of text.
2018-05-31 12:00:02 This is the second line of text.
2018-05-31 12:00:03 This is the third line of text.
2018-05-31 12:00:04 This is the forth line of text.
2018-05-31 12:00:05 This is the fifth line of text.

Если я сравниваю два файла построчно - они разные из-за секунд в отметке времени.

Но если я пропускаю первые 19 символов от начала каждой строки в обоих файлах (дата и время) - эти файлы идентичны. Как это сделать с помощью команды оболочки (скрипта)?

Заранее большое спасибо.

2
pau 1 Июн 2018 в 00:11

1 ответ

Лучший ответ

Используя cut:

diff <(cut -c 20- file1) <(cut -c 20- file2)

Примечание: с GNU cut символьная опция -c фактически работает с байтами, а не с символами, но это должно быть нормально, если ваш вывод начинается с меток даты/времени, а не специальных символов.

2
jesse_b 1 Июн 2018 в 00:25
1
Если проблема с вырезанием, используйте sed: sed 's/^.\{1,20\}//' file.
 – 
ImHere
1 Июн 2018 в 10:21
1
Большое спасибо, @Jesse_b - ваше решение работает именно так, как мне нужно!
 – 
pau
1 Июн 2018 в 22:11