letztes Element einer Liste

30/11/2012 - 16:13 von Helmut | Report spam
Hallo alle miteinander,

ich möchte gern möglichst einfach das letzte Element einer Liste
beschaffen;

Beispiel (Einzeiler - muss nicht unbedingt so sein):

Text=a.b.c.d.e.f; set -- $(echo $Text | tr '.' ' '); echo $#; echo ${$#}

Das hakt beim letzten Kommando: diese Art der Adressierung funktioniert
nicht (oder nicht so, wie ich das gern hàtte).

Wie könnte ich möglichst direkt das Element ansprechen, dessen Platz ich
über "$#" beschafft habe?

"echo ${2}" funktioniert ja ...

Ja - ich könnte mit "rev" arbeiten ... aber das ist m.E. zuviel Aufwand.
Und "echo ${Text##*.} ginge auch ...

Viele Gruesse
Helmut

"Ubuntu" - an African word, meaning "Slackware is too hard for me".
 

Lesen sie die antworten

#1 Jochen Lübbers
30/11/2012 - 17:02 | Warnen spam
Ohne mir Gedanken um Portabilitàt gemacht zu haben, (m)ein Schnellschuss:

Text=a.b.c.d.e.f; echo $Text | tr '.' ''|tail -1

Für portable solltest Du (IMHO) awk einsetzten.

HTH
Jochen
"Wer die Freiheit aufgibt, um Sicherheit zu gewinnen,
der wird am Ende beides verlieren"

Ähnliche fragen