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