ça ne marche pas. je l'ai déjà utilisé. il dit que la commande est introuvable.
surbhi
3
@surbhi Que dit la commande introuvable? cutest un utilitaire standard. Votre script contient probablement une erreur ailleurs. Plus généralement, ne dites jamais «ça ne marche pas». Dites toujours exactement quel code vous avez exécuté, exactement ce qui s'est passé, et copiez-collez les messages d'erreur.
Gilles 'SO- arrête d'être méchant'
Cette réponse doit être acceptée, car c'est la manière la plus concise et la plus directe. Cela ne fonctionnera pas dans les cas qui sont plus compliqués que l'exemple donné, bien sûr.
Dan Nguyen
10
Une bonne façon de le faire est d'utiliser un tableau bash pour fractionner une chaîne sur des espaces. Vous pouvez déclarer un tableau simplement en utilisant des crochets:
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[@]}'"
Cela dépend de votre utilisation de bash. Si vous utilisez un autre shell, cela peut ne pas fonctionner. echo $SHELLdevrait montrer: /bin/bashou similaire.
gogoud
ne fonctionne pas zsh; (
TonyH
Cela fonctionne dans ZSHzoom="one two three"; declare -a zoomie=( $( echo $zoom | cut -d' ' -f1- ) ); echo ${zoomie[2]};
echo "${var% *}" && echo "${var#* }"
...Réponses:
En plus de la suggestion de jasonwryan , vous pouvez utiliser
cut
:Ce qui précède
cut
est laecho
sortie avec un délimiteur d'espace (-d ' '
) et sort le premier champ (-f1
)la source
cut
est un utilitaire standard. Votre script contient probablement une erreur ailleurs. Plus généralement, ne dites jamais «ça ne marche pas». Dites toujours exactement quel code vous avez exécuté, exactement ce qui s'est passé, et copiez-collez les messages d'erreur.Une bonne façon de le faire est d'utiliser un tableau bash pour fractionner une chaîne sur des espaces. Vous pouvez déclarer un tableau simplement en utilisant des crochets:
la source
echo $SHELL
devrait montrer:/bin/bash
ou similaire.zsh
; (zoom="one two three"; declare -a zoomie=( $( echo $zoom | cut -d' ' -f1- ) ); echo ${zoomie[2]};