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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [shell ou Perl] Parser un fichier et le modifier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[shell ou Perl] Parser un fichier et le modifier

n°724355
zublo
Posté le 13-05-2004 à 10:53:56  profilanswer
 

Bonjour,
 
Voila mon probleme :
 
J'ai un fichier LOG et je voudrais envoyer chaque ligne de ce fichier a un programme en C pour qu'il me dise si la ligne est ou n'est pas valide.
Puis je dois rediriger la sortie de ce programme dans le fichier.

Code :
  1. Fichier en entree:
  2. "ligne a analyser"
  3. fichier de sortie :
  4. "ligne a analyser XXX" "sortie du programme"


 
Je ne sais pas si c'et plus facile et/ou rapide du shell script ou du perl, le fichier a analyser fait a peu pres entre 10 et 50 Mo.
 
Merci d'avance


Message édité par zublo le 13-05-2004 à 10:55:30
mood
Publicité
Posté le 13-05-2004 à 10:53:56  profilanswer
 

n°724467
black_lord
Truth speaks from peacefulness
Posté le 13-05-2004 à 11:35:50  profilanswer
 

Code :
  1. cat fichier | programme


 
ça ne te va pas ?

n°724637
gfive
Posté le 13-05-2004 à 13:47:47  profilanswer
 

une question, comme ça : ton programme c, il vérifie quoi??
Parce que tu aurais certainement intérêt à utiliser un seul langage : lancer ton prog. c à chaque ligne d'un machin de 10Mo, ça va prendre un temps fou!!
 
A mon sens, tu aurais intérêt :  
 
- soit à faire parcourir le fichier par ton programme c, qui vérifie ligne par ligne,
- soit à écrire tout en Perl.
 
ouala ouala...

n°725399
matafan
Posté le 14-05-2004 à 00:52:15  profilanswer
 

Citation :

cat fichier | programme


Le cat est absolument inutile : « programme < fichier » fait la même chose mais avec un process et un pipe de moins.
 
Sinon, tu ne peux pas écrire dans le fichier que tu es en train de lire. A part avec perl -i ou sed -i.

n°725424
zublo
Posté le 14-05-2004 à 03:28:37  profilanswer
 

gfive a écrit :

une question, comme ça : ton programme c, il vérifie quoi??
Parce que tu aurais certainement intérêt à utiliser un seul langage : lancer ton prog. c à chaque ligne d'un machin de 10Mo, ça va prendre un temps fou!!
 
A mon sens, tu aurais intérêt :  
 
- soit à faire parcourir le fichier par ton programme c, qui vérifie ligne par ligne,
- soit à écrire tout en Perl.
 
ouala ouala...


 
le probleme c'est que ce programme en C verifie et cree un hash code dont je n'ai pas l'algo.
Voila pourquoi je pensais a du perl ou du script shell, meme si c'est pas super rapide c'est le seul moyen que j'ai trouve mais je ne vois vraiment comment le realiser.

n°725440
gfive
Posté le 14-05-2004 à 08:07:39  profilanswer
 

Et ton code C, il est dispo que sous forme d'exécutable?? Y'a pas une version "librairie" de la chose (dll ou .so) histoire de pouvoir appeller directement l'algo depuis du code c???
 
Sinon, Matafan et Blacklord, si le programme C est codé de telle sorte qu'il ne prenne qu'une ligne en argument, ben ça marchera pas, vos solutions.

n°725441
gfive
Posté le 14-05-2004 à 08:09:17  profilanswer
 

Sinon, beeen
 

Code :
  1. for $line in `cat fichier` ; do
  2.     programme $line >> sortie
  3. done


 
mais c'est moche et pas optimisé, et on peut certainement faire mieux avec un while, ou comme ça, mais je me souviens plus de la sytaxe! :D


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [shell ou Perl] Parser un fichier et le modifier

 

Sujets relatifs
Arborescence de fichier et checkboxlister le dernier fichier d'un répertoire
C shell (sh): question a 1Euro: comment incrementer une valeur?Raccourci fichier.....
Valider un fichier xml avec une dtdJe n'arrive pas a installer perl sur apache 1
[référencement site] fichier spiders plein de mots cléfs ?générer un fichier Word
[c] structurer un fichierLecture de fichier
Plus de sujets relatifs à : [shell ou Perl] Parser un fichier et le modifier


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