[gull] sh, awk, et les guillemets

Sebastien Chassot seba.linux at sinux.net
Tue Apr 14 15:57:51 CEST 2009


On Tue, 2009-04-14 at 13:20 +0200, Pierre Maitre wrote:
> Bonjour à tous
> 
> J'utilise un petit programme que j'ai écrit avec awk il y a 19 ans  et
> qui me sert à faire mes factures. Il a passé sans encombres la
> succession des OS unix que j'ai eus: Unix AT&T, SunOS,  et Linux
> jusqu'à Debian Woody.
> 
Bonjour,

il m'a semblé comprendre qu'il y a plusieurs implémentations des regexp.
Perso je suis sous FreeBSD et la syntaxe awk n'est pas la même que sous
linux, ça ce joue à peu mais il faudrait peut-être déjà voir s'il y a eu
un changement à ce niveau. (DFA, NFA,...)

> Depuis Sarge, puis  Ubuntu, le programme awk "officiel"  ne reconnaît
> plus ma syntaxe (voir ci dessous) et j'utilise donc la version awk de
> Woody, qui fonctionne, et que je sauve précieusement à chaque upgrade.
> C'est pas très élégant comme méthode, et j'aimerais bien changer mon
> code pour qu'il fonctionne avec la version actuelle de awk.
> 
> J'ai des problèmes de guillemets ou de protection de guillemets
> 
> le code  awk en question:
> 
> {
> #....
> # valeur de la variable nid obtenue  plus haut
> #### search the address in the file "clients" :
> while( "egrep -e '"nid"' clients" | getline ) {}
> nom = $12
> close ( "egrep -e '"nid"' clients" )
> print nom
> }
> 
Est-ce que tu as essayé d'échapper les guillemets entourant nid
( '\"nid\"' ) parce qu'il me semble que le premier guillemets est
interprété comme "fermant"?

Deuxième remarque, c'est /bin/sh qui semble se plaindre de la syntaxe
pas awk !?? 





More information about the gull mailing list