[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: