Zeichenkette per Shellskript ausschneiden

T

Tom71

Mitglied
Hallo,

habe folgendes Problem :
Ich möchte Dateien in Unterordner verschieben, abhängig von einer Zeichenkette im Dateinamen.

Beispiel:
1. Datei1AAAAAA.txt
2. Datei12BBBBBBB.txt
3. Datei123CCCCCC.txt
4. Datei1234DDDDDD.txt
5. Datei12345EEEEEE.txt

Datei 1 soll nun in den Zielordner "AAAAAA", Datei 2 in Ordner "BBBBBB" usw. verschoben werden.

Hat jemand eine Idee ?

TOM :(
 
E: Angabe falsch verstanden

Code:
i=Datei1asdasd; echo ${i:6}
ist ein Beispiel, damit entfernst du die ersten 6 Zeichen aus einem String, sprich was du brauchst ist sowas

Code:
for i in Datei*txt
do
     mkdir ${i:6} #nur falls Verzeichnisse noch nicht vorhanden
     mv $i ${i:6}
done
 
Zuletzt bearbeitet:
Zeichenkette ausschneiden von hinten möglich ?

Hallo,

danke für die schnelle Antwort !
Allerdings ist die Zeichenlänge vor den auszuschneidenden Zeichen immer unterschiedlich, so daß ich nicht immer die ersten 6 wegnehmen kann.

Von hinten beginnend würde es gehen, da bis zu der auszuschneidenden Zeichgenkette immer die selbe Anzahl Zeichen existiert.

Kann ich auch am Ende mit dem Ausschneiden beginnen, rückwärts sozusagen ?
 
Hi,

sollte doch genauso einfach, nur mit negativem Offset laufen, etwa:
Code:
$ DATEI=Datei1234DDDDDD.txt
$ echo ${DATEI:(-10):6}
DDDDDD
$

(Siehe "man bash", "Substring Expansion")

Gruss, A.
 

Ähnliche Themen

Samba 3.6.25 - OpenLDAP Setup

Programm zur Bildbearbeitung gesucht!

Keine grafische Oberfläche (Debian Installation)

Spalten einer Datei in neue Datei integrieren.

Gelöst: yum update: Konflikt --skip-broken?

Zurück
Oben