no está trabajando. Ya lo usé. dice comando no encontrado.
Surbhi
3
@surbhi ¿Qué dice el comando no encontrado? cutEs una utilidad estándar. Su script probablemente tenga un error en otro lugar. En términos más generales, nunca digas "no está funcionando". Siempre diga exactamente qué código ejecutó, exactamente qué sucedió y copie y pegue los mensajes de error.
Gilles 'SO- deja de ser malvado'
Esta respuesta debe ser aceptada, ya que es la forma más concisa y directa. No funcionará en casos que son más complicados que el ejemplo dado, por supuesto.
Dan Nguyen
9
Una buena manera de hacer esto es usar una matriz bash para dividir una cadena en espacios. Puede declarar una matriz simplemente usando paréntesis:
var="129 148 181"
vars=( $var )
echo "First word of var: '${vars[0]}'"
echo "Second word of var: '${vars[1]}'"
echo "Third word of var: '${vars[2]}'"
echo "Number of words in var: '${#vars[@]}'"
echo "${var% *}" && echo "${var#* }"
...Respuestas:
Además de la sugerencia de jasonwryan , puedes usar
cut
:Lo anterior
cut
es laecho
salida con un delimitador de espacio (-d ' '
) y genera el primer campo (-f1
)fuente
cut
Es una utilidad estándar. Su script probablemente tenga un error en otro lugar. En términos más generales, nunca digas "no está funcionando". Siempre diga exactamente qué código ejecutó, exactamente qué sucedió y copie y pegue los mensajes de error.Una buena manera de hacer esto es usar una matriz bash para dividir una cadena en espacios. Puede declarar una matriz simplemente usando paréntesis:
fuente
echo $SHELL
debería mostrar:/bin/bash
o similar.zsh
; (zoom="one two three"; declare -a zoomie=( $( echo $zoom | cut -d' ' -f1- ) ); echo ${zoomie[2]};