Awk et sortie vers un fichier

Bonjour,

J’ai fait un petit script qui fonctionne en ligne de commande (ligne awk) mais pas quand je veux le lancer depuis les scripts nautilus
Le but est d’extraire les lignes d’un fichier d’entrée (altitude topo) de la forme x y z qui correspondent à la zone géographique souhaitée
Le fichier d’entrée (coordonnée metriques Lambert93) :

...
148950 6825000 25.43
149025 6825000 21.97
149100 6825000 17.21
149175 6825000 25.80
149250 6825000 13.25
...

le code du script dans .gnome2/nautilus-script :

while [ $# -gt 0 ]; do
	in_file=$1
	centre=` zenity --entry --title="Centre" --text="Coordonnée centrale : " --entry-text="0,0" `
	rayon=` zenity --entry --title="Rayon" --text="Rayon de l'extraction : " --entry-text="20000" `
	centreX=$(echo $centre|cut -d "," -f 1)
	centreY=$(echo $centre|cut -d "," -f 2)
	limiteEst=$((centreX+rayon))
	limiteOuest=$((centreX-rayon))
	limiteNord=$((centreY+rayon))
	limiteSud=$((centreY-rayon))
	out_file="${in_file%.*}-$limiteOuest-$limiteEst-$limiteSud-$limiteNord.xyz"
	#zenity --info --text="$centreX $centreY $rayon"
	#zenity --info --text="$limiteOuest $limiteEst $limiteSud $limiteNord"
	cat $in_file | awk '($1>=$limiteOuest) && ($1<=$limiteEst) && ($2>=$limiteSud) && ($2<=$limiteNord) {printf ("%d %d %d\n",$1,$2,$3)}' > $out_file
	shift	
done

Le principe est d’entrer les coordonnées centrales de la zone a extraire, puis le rayon d’extraction. Avec ces 2 entrées, le script determine les valeurs min et max de chaque axe afin que awk puisse filtrer le fichier topo en entrée (entré par la sélection dans nautilus).
Le fichier est bien créé, avec le nom que je souhaite, mais est vide ! J’ai essayé quelques alternatives mais sans succès… une idée ?
merci pour votre aide

salut,

un petit exemple :var="abc" echo '$var' $var echo "$var" abctu dois passer les variables du shell à awk avec autant d’options -v.

Merci Watael. ça marche nickel !

cat $in_file | awk -v lo=$limiteOuest -v le=$limiteEst -v ls=$limiteSud -v ln=$limiteNord '($1>=lo) && ($1<=le) && ($2>=ls) && ($2<=ln) {printf ("%d %d %d\n",$1,$2,$3)}' > $out_file

Je ne comprends pas bien pourquoi en ligne de commande la commande initiale fonctionne et qu’il faille faire ce passage de paramètres pour la version scriptée, mais bon c’est cool ça marche. Merci encore