Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Dateien in Verzeichnisse nach Alphabet kopieren.

44 views
Skip to first unread message

Wolf Hering

unread,
May 31, 2017, 7:10:02 AM5/31/17
to
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



Ich hab folgendes mal ausprobiert aber zufrieden bin ich damit auch nicht:
Das hatte ich da gefunden.

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

Klaus Becker

unread,
May 31, 2017, 8:00:03 AM5/31/17
to
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

Bjoern Meier

unread,
May 31, 2017, 8:30:03 AM5/31/17
to
Hi,

also, ich würde pro Verzeichnis, alles was zu kopieren ist mit sort in eine textdatei schreiben. Damit ist es dann sortiert und dann die Textdatei als Argument (mit egrep auf den Anfangsbuchstaben) zum Kopieren nutzen.

Easy peasy lemon squeezy.

Gruß,
Björn
0 new messages