È semplice. Non sopporto quando le persone usano gli spazi quando nominano i file. Talvolta rovina i comandi della console e rende brutta l'output di ls.
La sfida è scrivere un programma (solo caratteri ASCII) che
- rinomina tutti i file (comprese le directory) nella directory corrente in versioni con spazi rimossi o sostituiti da '_'
- in caso di collisione, è necessario aggiungere un identificatore univoco (fino a te)
- scende ricorsivamente in tutte le sottodirectory
È possibile assumere nomi di percorsi in stile UNIX. Chi avrebbe comunque bisogno di questo programma su un computer Windows?
Questo è il golf del codice, vince il programma più breve (caratteri #ascii). Dal momento che odio gli spazi così tanto, ogni spazio deve essere contato due volte.
Fornisci la tua lingua, il punteggio, il programma e una breve descrizione di come eseguirlo.
Il programma deve essere compilato ed eseguito con ragionevole sforzo sulla mia macchina Linux.
EDIT: Poiché Etan ha richiesto una struttura di file per il test, ecco lo script che attualmente uso per creare un albero di file adatto:
#!/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