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 messageReceived on Thu 29 Jan 2009 - 16:20:54 CET