Pb script unix + awk

Pb script unix + awk - Shell/Batch - Programmation

Marsh Posté le 30-04-2007 à 11:14:46    

Bonjour
J'ai une variable chaine TEXT="a b c d e f"
et une boucle for
for i in "1 2 3 4 5 6" do
done
 
je souhaite mettre dans une variable RES à chaque itération les valeurs a,b,c,d etc ...
 
je sais que je peux faire :
for RES in TEXT do
done
 
mais je ne veux pas
 
J'ai donc essayé un truc du style :
for i in "1 2 3 4 5 6" do
  RES=`echo $TEXT | awk '{ print $i }'  
done  
mais cela ne fonctionne pas  
une idée ?
Merci d'avance.

Reply

Marsh Posté le 30-04-2007 à 11:14:46   

Reply

Marsh Posté le 01-05-2007 à 09:07:37    

C'est parce que $i est inconnue dans ton script awk. Deux solutions : soit tu remplaces les ' par des ", auquel cas c'est le shell qui va remplacer $i par sa valeur avant de passer l'expression à awk, soit tu laisses avec des ' est tu fait awk -v i=$i pour que awk positionne sa variable "i" à la valeur de la variable d'environnement 'i'.
 
Pour moi la deuxième solution est plus propre.


Message édité par matafan le 01-05-2007 à 09:07:55
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed