Re: Ordner umbenenenn (find, regexp und mv) leicht OT

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Thu, 29 Jan 2009 11:35:39 +0100 (CET)

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 message
Received on Thu 29 Jan 2009 - 11:35:45 CET

search this site