Re: Dateien in Verzeichnisse nach Alphabet kopieren.
On mercredi 31 mai 2017 13:04:46 CEST Wolf Hering wrote:
> Hallo, würde mich sehr freuen wenn mir hier jemand weiterhelfen könnte,
> schon mal danke für eure Mühe.
>
> Gibt es unter Linux einen Befehl oder ein Programm womit ich Dateien
> sortieren kann. Ich habe folgendes Problem ich habe sehr viele Dateien die
> ich alphabetisch in Verzeichnisse sortieren will mit Unterverzeichnis.
>
> Also dass alle Dateien mit den Anfangsbuchstaben in folgendes Verzeichnis,
> also Dateien die mit A anfangen kommen in das Verzeichnis A, Dateien die
> mit dem Buchstaben B anfangen in das Verzeichnis B und so weiter.
>
> Im Prinzip sowas wie Big Mean Folder Machine 2, aber das gibt es leider nur
> für Mac
>
> http://www.publicspace.net/BigMeanFolderMachine/
>
>
> Ich hab folgendes mal ausprobiert aber zufrieden bin ich damit auch nicht:
> Das hatte ich da gefunden.
> https://unix.stackexchange.com/questions/111067/bash-script-to-sort-files-in
> to-alphabetical-folders-on-readynas-duo-v1
>
> mkdir -p output/{A..Z}; mkdir -p output/{0..9}; for i in tstdir/*; do export
> FILE=$(basename "$i"); LTR=$(echo "${FILE:0:1}" | tr [a-z] [A-Z]); mv "$i"
> "output/$LTR/$FILE" ; done
>
> Das Problem ist wenn Unterverzeichnis enthalten sind er stellte es direkt im
> Namen des Alphabet mitsamt aller Unterverzeichnisse. Es wäre gut wenn nur
> die Dateien in den Unterverzeichnisse berücksichtigt werden und dann in die
> einzelnen Verzeichnisse sortiert werden.
>
> Gut wäre auch noch wenn Zahlen und Sonderzeichen in das # Verzeichnis
> notiert werden.
>
>
> Was auch noch gut wäre wenn in einem Verzeichnis über 100 Dateien sind, dass
> er dann auf die zweite Ebene geht. Also am Buchstaben A dann auch den
> zweiten Buchstaben berücksichtigt und innerhalb des Verzeichnis A dann
> weitere Verzeichnis erstellt von A -Z und Sonderzeichen.
>
>
> Am liebsten wäre mir Kopieren der Dateien und nicht verschieben.
>
> Gruß Wolf
Hallo Wolf,
ich bin kein Experte, aber vielleicht interessiert dich folgendes Skript, das
mir ein Freund mal für ähnliche Zwecke gestrickt hat:
=============
read -p "Geben Sie einen Ordnernamen ein:" ordner
cd $ordner
Initiale=$(find . -name "*" -type d | cut -c3)
echo $Initiale > buchstaben.txt
sed -i 's/ /\n/g' buchstaben.txt
cat buchstaben.txt | sort | uniq > buchstaben_sortiert.txt
while read line; do
mkdir -p $line
rep=$(find . -name "$line?*" -type d)
mv $rep $line 2> /dev/null
done < buchstaben_sortiert.txt
rm buchstaben*.txt
=============
Ohne Garantie, unbedingt vorher testen!
Ist nur als Denkanstoss gedacht. Soweit ich mich erinnere, habe ich es vor
Jahren benutzt und es klappte.
Gruss
Klaus
Reply to: