J'ai une commande, par exemple : echo "word1 word2"
. Je veux mettre un tuyau (|
) et obtenir "word1" de la commande.
echo "word1 word2" | ....
Que dois-je mettre après le tuyau ?
J'ai une commande, par exemple : echo "word1 word2"
. Je veux mettre un tuyau (|
) et obtenir "word1" de la commande.
echo "word1 word2" | ....
Que dois-je mettre après le tuyau ?
AWK est une bonne option si vous devez gérer l'espace blanc de fuite, car il prendra soin de vous :
echo " word1 word2 " | awk '{print $1;}' # Prints "word1"
Cut ne s'en occupera pas :
echo " word1 word2 " | cut -f 1 -d " " # Prints nothing/whitespace
« couper » ici n'imprime rien/espace blanc, parce que la première chose avant un espace était un autre espace.
Il n'est pas nécessaire d'utiliser des commandes externes. Bash lui-même peut faire le travail. En supposant que « word1 word2 » vous avez obtenu de quelque part et stocké dans une variable, par exemple,
$ string="word1 word2"
$ set -- $string
$ echo $1
word1
$ echo $2
word2
Vous pouvez maintenant assigner $1
, $2
, etc. à une autre variable si vous le souhaitez.
Je pense qu'un moyen efficace est l'utilisation de tableaux de bord :
array=( $string ) # Do not use quotes in order to allow word expansion
echo ${array[0]} # You can retrieve any word. Index runs from 0 to length-1
En outre, vous pouvez lire directement les tableaux dans une pipe-line :
echo "word1 word2" | while read -a array; do echo "${array[0]}" ; done
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.