Команда
dos2unix служит для преобразования форматов текстовых файлов
MSDOS к
UNIX формату, а команда
unix2dos служит для преобразования форматов текстовых файлов
UNIX к формату
MSDOS и
Windows. Известно, что форматы текстовых файлов в
DOS и в
UNIX немного отличаются: в
DOS все строки заканчиваются парой символов
CR и
LF (возврат каретки
/r и перевод строки
/n), а
UNIX использует только символ
LF перевод строки
/n, справедливо полагая, что второй символ совершенно излишен. Чтобы не устанавливать эти консольные утилиты
dos2unix и
unix2dos можно воспользоваться вот такими несложными функциями написанными с использованием
sed в
sh:
#!/bin/sh
dos2unix() {
sed -i '' -e 's/'"$(printf '\015')"'$//' "$1"
}
unix2dos() {
sed -i '' -e 's|$|'"$(printf '\015')"'|' "$1"
}
# Сделать окончания строк LF (Unix)
dos2unix file.test
# Сделать окончания строк CR/LF (Win or Dos)
unix2dos file.test
Запустить аналог на
sed для
dos2unix прямо в консоли можно командой:
FreeBSD$ sed -i '' -e 's/'"`printf '\015'`"'$//' file.name
А аналог на
sed для
unix2dos прямо в консоли выглядит так:
FreeBSD$ sed -i '' -e 's|$|'"`printf '\015'`"'|' file.name
Обработать рекурсивно все
php файлы в текущем каталоге:
FreeBSD$ find . -name "*.php" -type f -exec sed -i '' -e 's/'"`printf '\015'`"'$//' {} \;
Причины НЕ устанавливать данные консольные утилиты могут быть разными, например невозможность их установить (случай с VPS или web хостингом), спортивный интерес ну или просто лень :)
Комментариев нет:
Отправить комментарий