Awk: selection d'une valeur dans une ligne

Résolu/Fermé
snow_frog - 4 févr. 2009 à 21:42
snow_frog Messages postés 216 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 26 juin 2020 - 5 févr. 2009 à 18:36
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

5 réponses

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 ?
1
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
5 févr. 2009 à 18:21
PIC=$(echo "$VAR1 - $VAR2" | bc)
1
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
4 févr. 2009 à 21:51
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]$
;-))
0
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
snow_frog Messages postés 216 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 26 juin 2020 139
5 févr. 2009 à 18:36
merci de ton aide
0