Bruno Crochet wrote:

> J'ai aussi eu des problemes avec awk y'a pas longtemps... Regarde quel est
> le programme appelé par la commande awk (gawk, mawk, nawk, awk?).


Eh oui, c'était ça: mon programme marchait avec gawk, et c'est mawk qui était appelé par la commande awk.
Merci pour le tuyau


Marc SCHAEFER wrote:

Est-ce qu'il faut que le while se trouve dans un bloc ?
Effectivement, je complète le script:

truc = "egrep -e '^" VARIABLE "' fichier";
while(system(truc) != 0){}

Effectivement, c'est une syntaxe plus élégante, qui fonctionne à la fois pour gawk et mawk.
J'adopte.


Donc apparemment, les systèmes que tu as utilisés récemment utilisaient
la version GNU de awk, et non pas `mawk'.

Pour changer pour le système entier, de façon à ce que awk soit toujours gawk:

update-alternatives --config awk

Voila, c'est fait: station0:/etc/apt# ls -la /etc/alternatives/{awk,nawk,mawk,gawk} ls: /etc/alternatives/mawk: No such file or directory ls: /etc/alternatives/gawk: No such file or directory lrwxrwxrwx 1 root root 13 Feb 23 16:41 /etc/alternatives/awk -> /usr/bin/gawk lrwxrwxrwx 1 root root 13 Feb 23 16:41 /etc/alternatives/nawk -> /usr/bin/gawk



En bref, et pour finir ce feedback, mon programme awk fonctionne un peu comme une base de donnée indexée: j'ai un premier fichier ascii qui est traité ligne par ligne par le programme awk, et chaque ligne comporte un champ "code-client"". Ma ligne
while ("egrep -e '^'"code-client" fichier2" | getline ) {}
va chercher dans fichier2 l'adresse correspondant au code-client.


J'aurais pu, plus simplement, coder ainsi:

while (getline < "patients" > 0) {

mais fichier2 fait plus de 15 Mb, et la solution avec egrep permet une reponse nettement plus rapide.

Un grand merci à tous pour votre aide et pour les explications détaillées

Pierre Maitre

--
Dr Pierre-O. Maitre
Privat Docent
FMH Anesthésiologie
FMH Pharmacologie Clinique
Cabinet médical / A la Joy
CH-1273 Genolier   Switzerland



--
http://www-internal.alphanet.ch/linux-leman/ avant de poser
une question. Ouais, pour se désabonner aussi.

Répondre à