Es ist einfach. Ich kann es nicht ausstehen, wenn Leute Leerzeichen beim Benennen von Dateien verwenden. Es zerstört manchmal Konsolenbefehle und macht die Ausgabe von ls hässlich.
Die Herausforderung besteht darin, ein Programm (nur ASCII-Zeichen) zu schreiben, das
- Benennt alle Dateien (einschließlich der Verzeichnisse) im aktuellen Verzeichnis in Versionen um, bei denen Leerzeichen entfernt oder durch "_" ersetzt wurden.
- Bei einer Kollision müssen Sie eine eindeutige Kennung anhängen (ganz nach Ihren Wünschen).
- rekursiv in alle Unterverzeichnisse absteigend
Sie können Pfadnamen im UNIX-Stil annehmen. Wer würde dieses Programm auf einem Windows-Computer benötigen?
Dies ist Codegolf, das kürzeste Programm gewinnt (#ascii Zeichen). Da ich Räume so sehr hasse, muss jeder Raum zweimal gezählt werden.
Bitte geben Sie Ihre Sprache, Partitur, Programm und eine kurze Beschreibung der Ausführung an.
Das Programm muss mit vertretbarem Aufwand auf meinem Linux-Rechner kompiliert und ausgeführt werden.
BEARBEITEN: Da Etan zum Testen eine Dateistruktur angefordert hat, verwende ich das folgende Skript, um einen geeigneten Dateibaum zu erstellen:
#!/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