Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Récupérer une sortie de commande awk
Envoyé par: biniou

bonjour,

je fais mes premiers pas en prog ( shell ), je suis entrain d'écrire un petit shell dans lequel j'utilise la commande awk pour isoler des nombres séparés par ":".
La commande que j'ai écrite marche bien, ça m'affiche les nombres à l'écran sans problème, mais je n'arrive pas à envoyer ces nombres dans une variable numérique que je puisse utiliser par la suite
awk -F ":" '{print $3 }' vcrp

Cette ligne m'affiche bien le 3 nombre séparer par : dans mon fichier texte, mais comment faire pour l'envoyer dans une variable nommée crp3 par exemple qui pouura me servir dans la suite de mon script ?

Désolé pour cette question de débutant, mais après une nuit de recherche, je sèche....

Merci

Poste le Saturday 2 September 2006 15:17:11
Répondre     Citer    
Re: Récupérer une sortie de commande awk
Envoyé par: Léa (Fred)

UNNOM=$(awk -F ":" '{print $3 }' vcrp)
devrait convenir

Poste le Saturday 2 September 2006 15:22:57
Répondre     Citer    
Re: Récupérer une sortie de commande awk
Envoyé par: biniou

Merci, ça a l'air de marcher nickel!!

Poste le Sunday 3 September 2006 13:18:42
Répondre     Citer    
Re: Récupérer une sortie de commande awk
Envoyé par: Sve@r

Citation
biniou
mais je n'arrive pas à envoyer ces nombres dans
une variable numérique que je puisse utiliser par
la suite
awk -F ":" '{print $3 }' vcrp
En fait, tu es devant un cas qui risque de t'arriver très souvent en prog shell: comment récupérer le résultat d'une commande

Le shell en lui-même est très limité. Mais tout ce qu'il ne sait pas faire, il peut le faire faire par des pgm annexes (et Unix en as une floppée). Il suffit pour ça, d'encadrer le programme par des accents graves, style
`pgm`
A ce moment là, le shell remplace l'ensemble par "ce que le programme affiche". Si cet affichage doit aller dans une variable, il suffit d'adjoindre la syntaxe classique "var=". Ex:
a=`date` # L'affichage de "date" ira dans "a"
b=`pwd` # Le chemin actuel ira dans "b"

On n'est pas obligé d'utiliser cette syntaxe dans des affectations de variables. On peut l'utiliser dans toute instruction shell.
Ex:
if test `pwd` = "/" # On regarde si le chemin courant est "/"
if test `echo $a |cut -c1` = "." # On regarde si le premier caractère contenu dans "$a" est "."

Dernier détail: cette syntaxe "`pgm`" a été remplacée, dans les shells récents, par "$(pgm)". C'est un peu plus lisible.
a=$(date)
b=$(pwd)

Cours de shell ici [fr.lang.free.fr]





L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Monday 4 September 2006 01:40:04
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Récupérer une sortie de commande awk
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons