Aquí hay una LISTA:
List = "abcd 1234 jvm something"
¿Cómo obtener el segundo elemento "1234" sin recorrer toda la lista?
sin espacios entre signo igual
$ List="abcd 1234 jvm something"
$ set -- $List
$ echo $2
1234
Algunas otras formas, aunque no tan eficientes como el uso de componentes internos de shell
$ 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
set -- $something
escisiones$something
en el$IFS
carácter (por el espacio por defecto) y cesionarios las partes divididas a las variables de posición$1
,$2
, ...Solo para complementar la respuesta de ghostdog: también puede poner
$List
los elementos de una matriz y acceder al elemento de lista específico desde allíTenga en cuenta que los índices de la matriz se cuentan 0,1,2, ....
Esto tiene la ventaja de no contaminar el entorno de shell con demasiadas variables nuevas.
fuente
echo
:arr=($List)