Как убрать пробелы из многих имен файлов под Cygwin - PullRequest
0 голосов
/ 22 ноября 2010

Я надеюсь, что кто-то может мне помочь, мне нужно удалить пробелы (не заменять подчеркиванием) из нескольких тысяч файлов в системе с Cygwin. Могу ли я сделать это из оболочки, используя переименование или mv как-то?

В настоящее время:

файл one.mp3
файл два.mp3

Все файлы должны стать:

fileone.mp3

filetwo.mp3

Спасибо

Ответы [ 2 ]

1 голос
/ 22 ноября 2010

Оболочкой Cygwin по умолчанию является bash, поэтому ...

Попробуйте эту командную строку, заменив $ DIR каталогом, в котором вы хотите выполнить указанное преобразование, и проверьте вывод:

find $DIR -type f -name '* *' | while read f; do d="${f%/*}"; f="${f##*/}"; echo mv "$d/$f" "$d/${f// }"; done

Если вы удовлетворены командами, которые будут выполняться, просто удалите эхо перед mv и повторите, чтобы выполнить фактическое переименование.Обратите внимание, что это будет переименовывать только файлы, но не каталоги.

0 голосов
/ 26 февраля 2013

В дополнение к приведенному выше ответу на изменение имени файла приведен код для изменения имени каталога:

find $DIR -type d -name '* *' | while read f; do d="${f%/*}"; f="${f##*/}"; echo mv "$d/$f" "$d/${f// }"; done

Единственное отличие - это четвертый аргумент от начала строки.Буква "f" заменена на "d", что соответствует файлу и каталогу соответственно.

...