Вопрос
Я хочу проверить, существуют ли какие-либо файлы DOS в любом конкретном каталоге. Есть ли способ отличить файлы DOS из Unix, кроме как ^ M Chars?
Я попробовал использовать файл, но он дает тот же вывод для обоих.
$ file test_file
test_file: ascii text
И после преобразования:
$ unix2dos test_file test_file
$ file test_file.txt
test_file.txt: ascii text
Решение
CRLF (\r\n
, ^M
) Линейные окончания Chars - это единственное различие между файлами Unix и DOS / Windows ASCII, поэтому нет, нет другого пути.
Что вы можете попробовать, если вам нужно fromdos
Команда - сравнить свой вывод с исходным файлом:
file=test_file
fromdos < $file | cmp $file -
Это не удается (не нулевой $?
) если fromdos
неумелый \r
далеко.
dos2unix
Может использоваться аналогичным образом, но я не знаю его точного синтаксиса.
Другие советы
Если вы на самом деле поместите Windows Newlines In, вы увидите следующий вывод из file
:
test_file.txt: ASCII text, with CRLF line terminators