Antwort: Re: String in der Bash zerlegen

Marco Wiese mwiese at beit.de
Thu Aug 6 14:17:04 CEST 2009


linux-bounces at lug-owl.de schrieb am 06.08.2009 13:54:06:
> Hallo Marco,
> hallo LUG OWL.
> 
> On Thu, Aug 06, 2009 at 12:59:42PM +0200, Marco Wiese wrote:
> > 
> > Ich habe einen String im Format String1/String2/String3
> > 
> > Nun brauche ich davon aber immer nur den String nach dem letzten "/".
> > Die Länge ist allerdings variabel, so dass ich nciht weiß, wieviel
> > Slashes enthalten sind. Weiß jemand Rat, wie ich an den letzten
> > Schtring komme???
> 
> quick 'n dirty:
> 
> s="foo/bar/foobar/a bc/wwe/asd/xy z" ; y=""; i=0; go=y; while [[ $go
> -eq y ]]; do i=$(( $i + 1 )) ; x=`echo $s | cut -d\/ -f $i`; echo $i
> x=$x ; if [[ $x = "" ]] ; then go=n && break ; fi; done; i=$(( $i-1 
> )); echo; x=`echo $s | cut -d\/ -f $i`; echo result: $x
> 
> Idee: durchzählen, bis nix mehr kommt, dann den letzten davor ausgeben.
> 
> Gruss
> Frank
> --

Hallo,

und vielen Dank für die zahlreichen Antworten (die teilweise leider nicht 
an die Liste gingen).
Schön zu sehen, dass es hierbei die unterschiedlichsten Lösungsansätze 
gibt. Der einfachste scheint tatsächlich "basename" zu sein. Damit 
funzts!!!

Besten Dank und Grüße
Marco




More information about the Linux mailing list