Extraire des lignes avec des conditions (ligne par ligne)

Extraire des lignes avec des conditions (ligne par ligne) - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 16-04-2008 à 16:32:08    

Bonjour à tous,
 
Je cherche à scripter une condition pour extraire une information de mes historiques.
 
Mettons l'historique ressemble à ceci :
 
16/04/2008 TOTO 10 60
16/04/2008 TOTO 20 60
16/04/2008 TOTO 40 60
16/04/2008 TUTU 40 80
16/04/2008 TOTO 50 80
Mon script devra vérifier la valeur du champ 4 , le diviser par 2 et ne m'extraire que les lignes qui ont une valeur supérieur au champ4 diviser par 2 (ici 30).
 
Le résultat sera donc juste
16/04/2008 TOTO 40 60
16/04/2008 TOTO 50 80
 
La valeur a divier par 2 est variable, le script doit donc travailler ligne par ligne, et extraire ou non à chaque fois les lignes qui remplisse le critère (ou le champ 3 est au moins supérieur à la moitié du champ 4.
 
 
Merci d'avance pour votre aide.
 
 
 

Reply

Marsh Posté le 16-04-2008 à 16:32:08   

Reply

Marsh Posté le 16-04-2008 à 19:23:33    

perso, j'essaierais un truc de ce genre (c'est pour donner une idée) :

Code :
  1. while read ligne ; do
  2. variable1=`echo $ligne|awk  -F' ' '{print $4}'`
  3. variable2=$(($variable1/2));
  4. if variable2 < 30 ;
  5. then echo $ligne >>fichier_final
  6. else rien_du_tout
  7. fi
  8. done < fichier_à_traiter


Message édité par Mjules le 16-04-2008 à 19:23:56

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 17-04-2008 à 11:58:40    

utilise awk je pense, cf.  http://ploug.eu.org/doc/principe-awk-lacroix.pdf   page 16  section 1.2.2


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
Reply

Marsh Posté le 16-05-2008 à 17:42:36    

awk '$3>($4/2)' fichier.log

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed