Как запустить команду dos2unix для файлов в нескольких папках и подпапках?
Я хочу запустить dos2unix
Команда на все файлы в папке. Проблема здесь в том, что папка содержит файлы и подпапки. Подпапка снова содержит файлы и папки. Так что, если я просто бегу user/bin/dos2unix <folder>
, он выдаст ошибку, так как в основной папке есть подпапки и папки.
Любая идея о том, как я могу обойти это так, чтобы dos2unix
команда будет запускаться на файлы внутри каждой из папок?
3 ответа
Просто запустите приведенную ниже команду, из которой вы хотите выполнить команду dos2unix. Изменить ниже "*.txt"
согласно вашему типу расширения файла. Если они отличаются в разных местах каталога, то сделайте это "*.*"
find . -name "*.txt" | xargs dos2unix
Вот .
ваш текущий каталог и "*.txt" are all your
Дос файлы.
Как будет работать вышеуказанная команда? Он найдет все dos
файлы *.txt
и введите каждый file
в качестве параметра для dos2unix
команда и которая преобразует это dos
отформатировать файл в unix
формат.
Если вы хотите запустить его из любого места, просто укажите полный путь вместо .
как ниже:-
find /path/from/where/you/want/to -name "*.txt" | xargs dos2unix
find <folder> -type f | xargs dos2unix
Объяснение:
find <folder> -type f
перечислит все обычные файлы внутри<folder>
и его подпапкиxargs dos2unix
будет применятьdos2unix
Команда для каждого из файлов, найденныхfind
xargs
здесь не нужен; просто используйте -exec
основной для find
:
find -type f -exec dos2unix {} +