Рекурсивное преобразование файлов из концов строки DOS в конец строки Unix

11

Я ищу команду, которую можно использовать для запуска всего каталога и подкаталога, которая преобразует все окончания строк из DOS в UNIX.

Он должен быть в состоянии определить, является ли файл текстовым или двоичным.

Я установил dos2unixиспользуя macports, но похоже, что он пропускает рекурсивную опцию.

Сорин
источник
Определите, как файл является текстовым или двоичным?
user151019
Текст: нет ASCII ниже 32, кроме TAB, CR, LF.
Макс Райд

Ответы:

22

Попробуй find . -name "*" -type f -exec dos2unix {} \;.


Если dos2unixваша система недоступна, вы можете использовать следующий скрипт (сохранить как dos2unixи установить как исполняемый файл):

#!/bin/sh

perl -pi -e 's/\r\n/\n/;' $*
chitsaou
источник
Не запускайте эту команду в корне репозитория Git, иначе вы испортите свой репозиторий!
Ник
Кроме того, мне повезло с использованием perl -pi -e 's/\r\n|\n|\r/\n/;' $*( источник )
Ник
1

Вот одна строка кода оболочки find . -name "*" -type f -exec perl -pi -e 's/\r\n/\n/;' {} \;

l0pan
источник
Одной строкой ответы не приветствуются. Попробуйте добавить больше деталей, или прокомментируйте это.
Макс Райд
Работает как рекламируется! Что еще добавить? ;-)
Тайко
2
Хм ... ну, он все-таки испортил некоторые файлы png. Обращаться с осторожностью
Тайко