Timm Wimmers wrote:
> Gegeben sind eine beliebige Anzahl von Ordnern nach folgendem Schema:
>
> "IRGENDEINKUNDE-01-1234 JOBBEZEICHNUNG"
>
> Das Erkennungsmuster ist hier "-01-1234", der vordere Teil wird noch
> benötigt, der hintere Teil soll abgeschnitten werden.
Also, das Entscheidende ist, die Trennstelle eindeutig zu
identifizieren. Deiner Beschreibung nach würde ich sagen,
dass der Ausdruck [-_ ][^0-9] eindeutig sein sollte, d.h.
eines der Zeichen "-", "_" oder " " gefolgt von einem
Zeichen, das keine Ziffer ist.
Ist das soweit korrekt? Kommt diese Kombination sonst
nirgends in den Dateinamen vor? Dann sollte folgendes
gehen:
find ... | while read SRC; do
DST="${SRC%%[-_ ][^0-9]*}"
mv "$SRC" "$DST"
done
Kannst Du alles in einer Zeile tippen (dann Semikolons
vor das "mv" und vor das "done"), oder in eine kleine
Skript-Datei. Aber am besten erstmal gucken, was es
tatsächlich machen würde, z.B. indem Du "echo" statt
"mv" schreibst.
Übrigens, Obiges ist sh-Syntax, mit zsh geht es ebenso,
theoretisch auch bash, habe ich aber nicht getestet.
> Wie müsste ich ungefähr vorgehen? sed? awk?
Weder noch; das geht mit der Shell allein. Man _kann_
natürlich auch sed oder awk nehmen, wenn's Spaß macht.
Das wird aber nicht unbedingt einfacher.
Gruß
Olli
-- Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M. Handelsregister: Registergericht Muenchen, HRA 74606, Geschäftsfuehrung: secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün- chen, HRB 125758, Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart FreeBSD-Dienstleistungen, -Produkte und mehr: http://www.secnetix.de/bsd With Perl you can manipulate text, interact with programs, talk over networks, drive Web pages, perform arbitrary precision arithmetic, and write programs that look like Snoopy swearing. To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Thu 29 Jan 2009 - 11:35:45 CET