56 votes

Comment récupérer des éléments d'une liste en bash ?

Voici une LISTE :

List = "abcd 1234 jvm something"

Comment obtenir le deuxième élément "1234" sans boucler toute la liste ?

64voto

Michael Medin Points 605

Juste pour compléter la réponse de ghostdog : vous pouvez aussi mettre $List dans un tableau et accéder à l'élément spécifique de la liste à partir de ce tableau

List="abcd 1234 jvm something"
arr=($List)
echo ${arr[1]}

Notez que les indices du tableau sont comptés 0, 1, 2,... .

Cela présente l'avantage de ne pas polluer l'environnement Shell avec trop de nouvelles variables.

60voto

user31894 Points 2591

Pas d'espace entre le signe égal

$ List="abcd 1234 jvm something"
$ set -- $List
$ echo $2
1234

Quelques autres moyens, bien que moins efficaces que l'utilisation de Shell en interne

$ echo $List | cut -d" " -f2
1234
$  echo $List | awk '{print $2}'
1234
$ echo $List | sed 's/^.[^ \t]* //;s/ .*//'
1234
$ echo $List | tr " " "\n"|sed -n '2p'
1234

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X