[shell] appel fonction shell perso dans awk?

Résolu/Fermé
Morphea - 10 oct. 2006 à 18:56
 Morphea - 11 oct. 2006 à 10:55
Bonjour,

Je développe actuellement un script shell (ksh) sous HP-UX.

Dans ce script, je définis un certain nombre de fonctions shell. Jusqu'ici tout va bien.

Dans la fonction principale, j'utilise un awk pour lire un fichier ligne par ligne et en extraire les différents champs.

Pour chacune des lignes lues (donc dans le corps de mon awk), il faudrait que j'appelle l'une de mes fonctions utilisateur en lui passant en paramètres les champs que le awk a lu.

Cela est-il possible?
Comment faire appel à une fonction shell utilisateur à l'intérieur d'un awk?
La commande system() n'a l'air de marcher qu'avec les fonctions shell "connues" (donc pas avec mes fonctions utilisateur, ou alors je me suis plantée dans la syntaxe...)

Ou alors y a-t-il une alternative au awk qui serait plus simple que ce que j'essaie de faire?

Merci d'avance pour l'aide que vous pourrez m'apporter!
A voir également:

3 réponses

mamiemando Messages postés 33606 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 26 mars 2025 7 836
10 oct. 2006 à 20:08
Pourquoi ne pas simplement faire un script shell qui appelle awk ?
Pour les alternatives, tu as python, perl, ruby...

Bonne chance
0
Pour python, perl, ruby, je vais éviter, je rame déjà assez avec le shell...

J'ai modifié mon script (qui est effectivement un script shell qui appelle awk...) pour que le awk ne prenne qu'une seule ligne au lieu du fichier tout entier, dans le but de sortir tout de suite du awk derrière pour pouvoir tranquillement appeler mes fonctions shell.

Mais là, un nouveau problème se pose: comment récupérer les champs parsés par awk à l'extérieur du awk?

Je l'ai déjà dit, mais je rame un peu en shell... Etant donné que tout ce que je veux faire est un simple parsing des lignes de mon fichier (champs séparés par un espace), est-ce qu'il n'existe pas une fonction shell autre que awk qui permet de faire ça, et de récupérer les différents champs dans des variables?
0
Hum, laissez tomber, je me suis dépatouillée avec un simple "cut" finalement...
0

Discussions similaires