mélanger shell et awk - Codes et scripts - Linux et OS Alternatifs
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;
}'
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 |
Marsh Posté le 04-04-2009 à 19:51:04
Bonjour à toutes et à tous !
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.