Rechercher : dans
Par :

Awk: selection d'une valeur dans une ligne

Dernière réponse le 5 fév 2009 à 18:36:04 snow_frog, le 4 fév 2009 à 21:42:58 
 Signaler ce message aux modérateurs

Bonjour vous tous,

je me permet de soliciter votre aide sur un petit script (bash)

voilà mon problème:

Je voudrais pouvoir récupérer des valeurs dans un tableau de 2 colonne et faire une opération mathématique dessus

exemple:

angle.txt

0 -5.5
1 -4.8
2 -4.5
3 -3.5
4 -3.0
... ...

la première colonne contient (0,1,2...) et la seconde -5.5,-4.8...

je voudrais pouvoir récupérer uniquement la ligne 1 et 4 de la colonne 2 et de stoker ces valeurs dans 2 variables pour insérer dans un script et faire des opérations mathématique dessus.

je me doute qu'il va falloir utiliser awk pour celà, mais même apres avoir feuillettez le man awk, je ne suis pas plus avancé...

Je fait donc appel à vos services pour m'aiguiller sur les options qui pourrait me servir.
merci d'avance

Configuration: kubuntu 8.04
Konqueror 3.5

1

jipicy, le 4 fév 2009 à 21:51:32

Salut,

[tmpfs]$ cat fich
0 -5.5
1 -4.8
2 -4.5
3 -3.5
4 -3.0

[tmpfs]$ var1=$(awk 'NR==1 {print $2 }' fich)

[tmpfs]$ var2=$(awk 'NR==4 {print $2 }' fich)

[tmpfs]$ echo $var1
-5.5

[tmpfs]$ echo $var2
-3.5

[tmpfs]$
;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

2

snow_frog, le 4 fév 2009 à 21:56:12

Merci de ta rapidité (apparement tu es un habitué de la réponse rapide ;) )

en attendant j'ai trouvé d'autre fil de discu sur ce même sujet.

Répondre à snow_frog

3

snow_frog, le 5 fév 2009 à 18:07:09
  • +1

Mon problème continue, apparement il n'aime pas le "point" en séparateur de décimale pour les opération:

 frog@mare:~/Documents$ cat angle
0.0 7.3
1.0 6
2.0 5
3.0 4.5
4.0 2
5.0 1

frog@mare:~/Documents$ ./test
./test: line 9: 7.3 - 4.5 : erreur de syntaxe : opérateur arithmétique non valable (error token is ".3 - 4.5 ")
7.3
4.5


contenu du scrit ./test:

 #!/bin/bash


VAR1=$(awk 'NR==1 {print $2 }' angle)
VAR2=$(awk 'NR==4 {print $2 }' angle)

PIC=$(( $VAR1 - $VAR2 ))

echo "$VAR1 "
echo "$VAR2 "
echo "$PIC"



quel et le moyen de lui dire que le point est mon séparateur de décimale ?

Répondre à snow_frog

4

jipicy, le 5 fév 2009 à 18:21:24
  • +1

PIC=$(echo "$VAR1 - $VAR2" | bc)
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

5

 snow_frog, le 5 fév 2009 à 18:36:04

Merci de ton aide

Répondre à snow_frog