[gull] dernier élément d'une liste

Félix Hauri felix at f-hauri.ch
Fri Jul 2 20:45:03 CEST 2004


On Fri, Jul 02, 2004 at 06:09:13PM +0200, Arnaud Burlet wrote:
> Certainement plus lent, mais ca fonctionne !
> 
> echo $foo | sed -e "s/ /\n/g" | tail -n 1

oui, mais ``tr'' est peut-être un poil plus léger:
$ echo $foo | tr \  \\n | tail -n1

ou encore:
$ echo bonjour les petits amis | rev | cut -d\  -f 1 | rev
amis

Mais pour le faire proprement en shell, le plus simple:
$ liste="bonjour les petits amis"
$ echo ${liste##* }
amis

... voire en shell, en utilisant les liste (array):
$ liste=(bonjour les petits amis) 
$ echo ${#liste[@]}
4
$ echo ${liste[$((${#liste[@]}-1))]}
amis

ou encore SANS variable, en ``filtre'' mais AVEC un sous-process:
 $ echo bonjour les petits amis | ( set -- $(cat); shift $(($#-1)); echo $1 )
amis

ou encore:
...

-- 
 Félix Hauri  -  <felix at f-hauri.ch>  -  http://www.f-hauri.ch



More information about the gull mailing list