Не уверен, что вы имеете в виду именно по «не надежен», но вы можете попробуйте:
find . -name '*.php' -print0 | xargs -0 grep -l '^M$'
Это использует больше зверских-имен файлов-с-пространства-в-них чистые вариантов и находит только возврат каретки непосредственно перед концом строки.
Имейте в виду, что ^M
является одной CTRLM характер, не два символов.
А также, что он будет перечислять файлы, в которых даже одна строка находится в режиме DOS, что, вероятно, так или иначе, так как это были бы файлы UNIX, искаженные редактором, отличным от UNIX.
На основе вашего обновления, VIM это отчетов файлы как формат DOS:
Если ВИМ является отчетности как формат DOS, затем каждый линия заканчивается CRLF
. Вот как работает vim. Если даже одна строка не имеет CR
, то это считается UNIX-форматом, а символы ^M
видны в буфере. Если все это формат DOS, не отображается ^M
символов:
Vim будет искать как дос и окончание строк Unix, но Vim имеет встроенное в предпочтение формата Unix.
- Если все строки в файле заканчиваются CRLF, будет применяться формат файла dos, что означает, что каждый CRLF удаляется при чтении строк в буфер, а опция buffer ff - dos.
- Если одна или несколько строк заканчиваются только LF, будет применен формат файла unix, что означает, что каждый LF будет удален (но каждый CR будет присутствовать в буфере и будет отображаться как^M), а буфер " ff 'будет unix.
Если вы действительно хотите знать, что в файле, не полагаться на слишком умный инструмент, как Vim :-)
Использование:
od -xcb input_file_name | less
и проверить линия заканчивается самостоятельно.
... Как точно это не так? –
@ignacio Что b говорит vbp. То есть, я хочу, чтобы найти свойство файла, а не то, что файл содержит – denormalizer
Но это не свойство файла, это то, что содержит файл. –