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

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Thu, 29 Jan 2009 16:20:50 +0100 (CET)

Timm Wimmers wrote:
> Oliver Fromme schrieb:
> > find ... | while read SRC; do
> > DST="${SRC%%[-_ ][^0-9]*}"
> > mv "$SRC" "$DST"
> > done
>
> Danke! Das %% ist ziemlich abgefahren

Ist POSIX-Standard (heißt »Remove Largest Suffix Pattern«).
%% und ## bzw. % und # sind auch nützlich als effzientere
Alternativen zu dirname(1) und basename(1) in sh-Skripten:

$ me=/laber/fasel/suelz
$ echo ${me%/*}
/laber/fasel
$ echo ${me##*/}
suelz

Häufig sieht man auch ${0##*/} in Skripten, wenn der Name
des Skriptes ohne Verzeichnis ausgegeben werden soll:

echo "Usage: ${0##*/} -n <number>" >&2

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
"One of the main causes of the fall of the Roman Empire was that,
lacking zero, they had no way to indicate successful termination
of their C programs."
        -- Robert Firth
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 - 16:20:54 CET

search this site