Это просто. Я терпеть не могу, когда люди используют пробелы при именовании файлов. Иногда это портит консольные команды и делает вывод ls безобразным.
Задача состоит в том, чтобы написать программу (только символы ascii), которая
- переименовывает все файлы (включая каталоги) в текущем каталоге в версии с удаленными пробелами или замененными на '_'
- при столкновении необходимо добавить уникальный идентификатор (до вас)
- спускается рекурсивно во все подкаталоги
Вы можете принять имена путей в стиле UNIX. Кому нужна эта программа на компьютере с Windows?
Это код гольф, выигрывает самая короткая программа (#ascii символов). Так как я очень ненавижу пробелы, каждый пробел должен быть посчитан дважды.
Пожалуйста, укажите свой язык, оценку, программу и краткое описание того, как ее запустить.
Программа должна компилироваться и выполняться с разумными усилиями на моем компьютере с Linux.
РЕДАКТИРОВАТЬ: Поскольку Etan запросил файловую структуру для тестирования, вот сценарий, который я сейчас использую для создания подходящего дерева файлов:
#!/bin/bash
rm -r TestDir
touchfiles()
{
touch my_file
touch my__file
touch "my file"
touch "my file"
touch " my_file "
}
mkdir TestDir
cd TestDir
touchfiles
for dir in "Test Sub" Test_Sub "Te stSub" Te_stSub
do
mkdir "$dir"
cd "$dir"
touchfiles
cd ..
done