mélanger shell et awk

mélanger shell et awk - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 04-04-2009 à 19:51:04    

Bonjour à toutes et à tous !  :hello:  
J'aimerais savoir si l'on peut récupérer des variables (calculées dans awk) dans un script en shell :
 
cat fichier | awk '{
x=substr($0,1,10);
y="'$(sh ./unAutreScript $x)'";
print y;
}'
 
Donc ce qui ne marche pas dans mon script est :
y="'$(sh ./unAutreScript $x)'";
 
Car je n'arrive pas à récupérer la variable x...
Savez-vous si cela est possible ?
Merci.

Reply

Marsh Posté le 04-04-2009 à 19:51:04   

Reply

Marsh Posté le 04-04-2009 à 20:39:05    

Je viens de trouver la solution pour une variable mais pas plusieurs :
cat fichier | awk '{
a=substr($0,1,10);
b=substr($0,10,20);
y="'$(sh ./unAutreScript '"a"')'";
print y;
}'  
--> Marche
 
Mais ci-dessous le code (avec deux variables) qui ne marche pas :
cat fichier | awk '{
a=substr($0,1,10);
b=substr($0,10,20);
y="'$(sh ./unAutreScript '"a b"')'";
print y;
}'

Reply

Marsh Posté le 05-04-2009 à 14:19:17    

Houla ce que tu fais ce n'est pas du tout la bonne méthode. Pour exécuter un programme externe dans un script awk, il faut utiliser la fonction system(). Si en plus tu as besoin (comme dans ton cas) de récuéper la sortie de ladite commande, il faut utiliser la fonction getline() :

"sh ./unAutreScript " a " " b | getline y

Reply

Sujets relatifs:

Leave a Replay

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