En Bash, quiero obtener la enésima palabra de una cadena retenida por una variable.
Por ejemplo:
STRING="one two three four"
N=3
Resultado:
"three"
¿Qué comando / script de Bash podría hacer esto?
En Bash, quiero obtener la enésima palabra de una cadena retenida por una variable.
Por ejemplo:
STRING="one two three four"
N=3
Resultado:
"three"
¿Qué comando / script de Bash podría hacer esto?
Respuestas:
echo $STRING | cut -d " " -f $N
Una alternativa
N=3
STRING="one two three four"
arr=($STRING)
echo ${arr[N-1]}
IFS
(el separador de campo interno) en ':' o algo en lugar de un espacio en blanco, cámbielo antes de intentar esto.
Un archivo que contiene algunas declaraciones:
cat test.txt
Resultado:
This is the 1st Statement
This is the 2nd Statement
This is the 3rd Statement
This is the 4th Statement
This is the 5th Statement
Entonces, para imprimir la cuarta palabra de este tipo de declaración:
cat test.txt |awk '{print $4}'
Salida:
1st
2nd
3rd
4th
5th
STRING=(one two three four)
echo "${STRING[n]}"