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

  FORUM HardWare.fr
  Windows & Software
  Logiciels

  Quel logiciel pour parser un fichier texte ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Quel logiciel pour parser un fichier texte ?

n°2641381
Pupoul
Je te vois
Posté le 15-02-2007 à 13:45:36  profilanswer
 

Bonjour à tous,
 
Je cherche un logiciel (freeware si possible), qui me permettrait de parser un fichier texte, y chercher une chaine de caractères que je lui aurais fourni, puis qui me collerait la ligne concernée dans un autre fichier de sortie.
 
27000 lignes à parser, et il faudra faire ce genre de choses pratiquement tous les jours, je cherche donc quelque chose d'assez fiable quand meme :)
 
Si vous connaissez un tel logiciel merci de m'en faire part, mes recherches sur google avec "parser", "analyser" ont rendu a peu près heu....n'importe quoi :/
 
PS : oui je sais, avec un basic à la noix ou WSH on peut le faire, seulement voila, bécane de m....e, pas les logiciels qui vont bien dessus.

mood
Publicité
Posté le 15-02-2007 à 13:45:36  profilanswer
 

n°2641383
freds45
Posté le 15-02-2007 à 13:48:03  profilanswer
 

Avec un linux (ou cygwin qui s'installe sous Windows), un cat, un grep, une redirection, et c'est fait ;)


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°2641384
leenux2003
Posté le 15-02-2007 à 13:48:54  profilanswer
 

Avec ce soft je m'occupe de rien :)
 
T'a la commande ? Ca m'interesse !

n°2641388
freds45
Posté le 15-02-2007 à 13:52:54  profilanswer
 

Un truc dans ce style là :
cat le_fichier|grep "la chaine à chercher" > fichier_de_sortie

Message cité 1 fois
Message édité par freds45 le 15-02-2007 à 13:52:59

---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°2641393
Pupoul
Je te vois
Posté le 15-02-2007 à 13:56:14  profilanswer
 

freds45 a écrit :

Un truc dans ce style là :
cat le_fichier|grep "la chaine à chercher" > fichier_de_sortie

 

Ha ouais mais non, hein, j'ai une pauvre bouse, je me vois déjà mal installer un XP la dessus, alors si c'est pour y mettre un cygwin pour lancer un grep :/

 

Bon, ceci dit, grep doit bien exister sous ligne de commande pour windows, je vais chercher, merci :D

 

EDIT : bon bin Windows Grep m'a bien aidé, il me faut 2 passages pour faire ce que je veux, mais ça marche très bien :jap:


Message édité par Pupoul le 15-02-2007 à 14:13:33
n°2641420
wathou
Posté le 15-02-2007 à 14:23:37  profilanswer
 

Heu awk est fait pour toi je pense....

 

http://www.shellunix.com/awk.html

 

tu as deja trouvé mais je continue a répondre.
Avec awk :

 

awk '/toto/ { print $0}' file_input

 

Cette ligne imprime chaque ligne ou la chaîne de charactère 'toto' est présente.

Message cité 1 fois
Message édité par wathou le 15-02-2007 à 14:42:13
n°2641615
Pupoul
Je te vois
Posté le 15-02-2007 à 17:53:07  profilanswer
 

wathou a écrit :

Heu awk est fait pour toi je pense....
 
http://www.shellunix.com/awk.html
 
tu as deja trouvé mais je continue a répondre.  
Avec awk :
 
awk '/toto/ { print $0}' file_input
 
Cette ligne imprime chaque ligne ou la chaîne de charactère 'toto' est présente.


 
Alors là, chapeau bas. :jap:
 
Awk est effectivement magnifique, mais je me retrouve un poil bloqué.
Je sais que ce n'est pas vraiment la catégorie pour, m'enfin, j'ai trouvé quelqu'un qui connait alors j'essaie quand meme :D
 

Citation :

BEGIN {
 RS = "\n"
 ORS="\r\n"
 OFS=":"
 FS = ":"
 cnt=0
 }
 
$3 ~ /GUICHET/ {
 Guichet = $4
}
$3 !~ /GUICHET/{
 $4 ~ / 1J900......../ && $3 ~ /CAB    / {cnt++; print substr($3,1,3) substr($4,2,13) "GUICHET" Guichet > "toto.txt"}
}
END {
 print cnt " lignes" > "toto.txt"
}


 
Voilà ce que j'ai pondu, le but est le suivant :
Dans un fichier de x milliers de lignes, repérer les lignes qui contiennent "CAB    " dans le champ 3 et aussi 1J900 dans le champ 4.
Ca je sais faire, mais ça ne suffit pas.
Je dois aussi regarder la ligne du dessus, savoir si elle contient dans le champ 3 le mot "GUICHET".
 
Et là, ça coince, j'ai beau tenter ce que je veux, je me fais jeter  
"line 13: syntax error at or near {"
et
"line 14: syntax error at or near }"
 
J'avais précédemment essayé, lorsque "GUICHET" était trouvé de faire un "getline" seulement cela semble surchargé les champs qui contiennent alors l'ensemble du fichier texte...
 
Si tu as une solution, merci de m'en faire part :)

n°2641623
Pupoul
Je te vois
Posté le 15-02-2007 à 17:58:54  profilanswer
 

Bon je me réponds à moi-même :

 
Citation :

BEGIN {
 RS = "\n"
 ORS = "\r\n"
 OFS = ":"
 FS = ":"
 cnt = 0
 }

 

$3 ~ /GUICHET/ {
 Guichet = $4
}
$4 ~ / 1J900......../ && $3 ~ /CAB    / {cnt++; print substr($3,1,3) substr($4,2,13) "GUICHET" Guichet > "toto.txt"}

 

END {
 print cnt " lignes" > "toto.txt"
}

 

Ca marche ça, mais je me demande bien pourquoi le programme précédent ne fonctionnait pas...

 

EDIT : En tout cas, énorme merci c'est l'outil dont j'avais besoin :jap:


Message édité par Pupoul le 15-02-2007 à 18:14:17

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Windows & Software
  Logiciels

  Quel logiciel pour parser un fichier texte ?

 

Sujets relatifs
Logiciel d'emailingcherche un logiciel de modélisation de réseau
Recuperer un fichier facilement ?recherche logiciel converstion avi en mpeg
Logiciel retouce photo sous win98incompatibilité fichier divxbox
Erreur lors d'un transfert de fichier !LOgiciel gratuit utile
Logiciel de vidéo-surveillance 
Plus de sujets relatifs à : Quel logiciel pour parser un fichier texte ?


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