Как запустить команду 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 {} +
Другие вопросы по тегам