Как проверить конец текстового файла, чтобы увидеть, если это формат Unix или DOS?
Мне нужно преобразовать текстовый файл в формат DOS (заканчивая каждую строку0x0d0x0a
, скорее, чем0x0a
только), если файл в формате unix (0x0a
только в конце каждой строки).
Я знаю как его конвертировать (sed 's/$/^M/'
), но неКак определить, какие символы в конце строки указаны в файле.
Я использую Ksh.
Любая помощь будет оценена.
[Обновление]: Вроде разобрался, и вот мой скрипт ksh для проверки.
[qiangxu@host:/my/folder]# cat eol_check.ksh
#!/usr/bin/ksh
if ! head -1 $1 |grep ^M$ >/dev/null 2>&1; then
echo UNIX
else
echo DOS
fi
В приведенном выше сценарии^M
должен быть вставлен вvi
сCtrl-V
а также .Ctrl-M
Хотите знать, есть ли лучший метод.