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