Вопрос

Я хочу проверить, существуют ли какие-либо файлы 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top