web-dev-qa-db-fra.com

comment diviser la chaîne après et avant l'espace dans le script Shell?

J'ai une variable qui apparaît sur l'écho comme ceci

$ echo $var
129 148

Je dois prendre seulement 129 en sortie. Comment vais-je diviser 129 et 148?

23
surbhi

En plus de suggestion de jasonwryan , vous pouvez utiliser cut:

echo $var | cut -d' ' -f1

Le cutsi ci-dessus la sortie echo avec un délimiteur d'espace (-d ' ') et affiche le premier champ (-f1)

41
Joseph R.

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[@]}'"
10
gogoud