2015-11-09 1 views
0

Может ли кто-нибудь сказать мне, что представляет собой номер строки в выводе команды cmp? Я спрашиваю об этом, потому что, во-первых, я не могу найти его объясненным нигде. Во-вторых, я получаю результаты, сравнивающие набор файлов, где выходы «char» идентичны (как и ожидалось), но «линейные» выходы сильно отличаются.вывод утилиты linux cmp: что такое «линия»?

+1

Не совсем Linux-специфический, кстати - это все черная буква POSIX. (Кроме того, там * не * только одна версия 'cmp', или даже один Linux cmp; наиболее популярным является GNU, но во многих Linux-системах вместо этого используется реализация busybox). –

ответ

1

Выходы «линии» отражают количество символов новой строки, которые были видны до этой точки в файле.

Для файла, который не находится в текстовом формате, вывод «линии» вряд ли будет значимым и может быть проигнорирован; для файла, который равен в текстовом формате, возвращаемый номер строки может использоваться в текстовом редакторе для перехода к области с разницей.


Per the POSIX spec for cmp:

Для файлов, которые не являются текстовыми файлами, номера строк просто отражает наличие < новой строки >, без каких-либо подразумевается, что файл организованы в строки.


Поскольку по умолчанию cmp печатает только первые разности видно, номера строк между двумя файлами гарантированно будут идентичны в этой точке. Когда передано -l, cmp продолжает превышать первое различие - но больше не печатает номера строк, тем самым избегая какой-либо двусмысленности относительно того, какой номер строки номера канала является каноническим.