Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1132 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Extraire des lignes avec des conditions (ligne par ligne)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Extraire des lignes avec des conditions (ligne par ligne)

n°1033800
tabasko
Posté le 16-04-2008 à 16:32:08  profilanswer
 

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.
 
 
 

mood
Publicité
Posté le 16-04-2008 à 16:32:08  profilanswer
 

n°1033862
Mjules
Modérateur
Parle dans le vide
Posté le 16-04-2008 à 19:23:33  profilanswer
 

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.
n°1034068
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 17-04-2008 à 11:58:40  profilanswer
 

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.
n°1042496
p-seeker23
Posté le 16-05-2008 à 17:42:36  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Extraire des lignes avec des conditions (ligne par ligne)

 

Sujets relatifs
activer la connexion réseau par câble (en ligne de commande)Extraire du texte "Highlited" (surbrillance) d'un fichier texte
[réglé] [sed ou ???] Limiter un fichier à n caracteres par ligneLigne de commande pour Mandriva 2008
Afficher une ligne d'un fichier à partir d'un numéro de ligneRepartitionner Fedora en ligne de commande
[Cygwin] Pb d'execution en ligne de commande.Supprimer des lignes entre deux balises sous linux
ajouter un mot en début de ligne par rapport à la valeur cherchée[Gentoo] Demarrer l'install en ligne de commande
Plus de sujets relatifs à : Extraire des lignes avec des conditions (ligne par ligne)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR