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

  FORUM HardWare.fr
  Windows & Software
  Logiciels

  Comment trier un .txt ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment trier un .txt ?

n°2389852
Capt1TaRac​e
Posté le 21-04-2006 à 09:58:54  profilanswer
 

Bonjour.
 
J'ai un fichier .txt à trier pour mon travail mais celuici fait plusieurs mo!
 
J'aimerais supprimer toutes les lignes sauf celles qui contiennent le mot "customer"
 
Je pense que ça se fait par un script vbs, ou peutetre un bat, mais je n'ai pas vraiment les compétences pour ça.
 
Si un spécialiste pouvait me donner un petit coup de pouce  :hello:  
 
Merci

mood
Publicité
Posté le 21-04-2006 à 09:58:54  profilanswer
 

n°2389912
Wolfman
Modérateur
Lobo'tomizado
Posté le 21-04-2006 à 10:54:11  profilanswer
 

Si tu as Excel, tu peux en faire quelque chose facilement...

n°2390222
Capt1TaRac​e
Posté le 21-04-2006 à 15:12:13  profilanswer
 

Je connais pas trop les macro sous Excel.
Pourrais-tu m'en dire plus stp ??

n°2390239
Wolfman
Modérateur
Lobo'tomizado
Posté le 21-04-2006 à 15:25:20  profilanswer
 

Pas forcément besoin de macro. Tu as des formules qui te permettent de faire un peu de manipulation de texte.

n°2390244
Capt1TaRac​e
Posté le 21-04-2006 à 15:28:17  profilanswer
 

tu pourrais m'indiquer la marche à suivre stp ?

n°2390248
Wolfman
Modérateur
Lobo'tomizado
Posté le 21-04-2006 à 15:32:43  profilanswer
 

Tu copies/colles ton fichier texte dans Excel. Tu devrais avoir une ligne par cellule, le tout dans la colonne A.
Dans la cellule B1, tu mets la formule :  
=TROUVE("customer";A1)
Puis tu recopies la formule dans les cellules du dessus.
 
Dans ta colonne B, toutes les cellules avec un chiffre correspondaent aors à une ligne contenant ton mot. Les autres ne l'ont pas. Il suffit de faire un tri par la colonne B, et de supprimer toutes les lignes en trop.

n°2390249
phosphorel​oaded
Posté le 21-04-2006 à 15:34:49  profilanswer
 

Tu installes UnxUtils quelque part sur ton PC (pour avoir accès à ce formidable outil qui s'appelle grep)
- Pour l'exemple tu décompresses dans C:\Unxutils
- Toujours pour l'exemple, place ton fichier toto.txt dans C:\ (la racine de la partition C: )
Une fois installé, tu lances l'invite de commandes et te rends dans le sous-répertoire usr\local\wbin
- touche Win+R taper "cmd" et OK
A taper dans la "fenêtre DOS":

cd \ (entrée)
cd Unxutils (entrée)
cd usr\local\wbin (entrée)
cat C:\toto.txt | grep customer > C:\rienquecustomer.txt


Va vérifier via l'explorateur de fichier que C:\rienquecustomer.txt contient bien ce que tu veux, c'est terminé :D

n°2390250
freds45
Posté le 21-04-2006 à 15:35:31  profilanswer
 

+1 pour grep, j'avais pensé à cygwin :)


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°2390253
phosphorel​oaded
Posté le 21-04-2006 à 15:39:08  profilanswer
 

Moi aussi mais je l'ai jamais installé car trop lourd et connexion quasi-permanente à un serveur Linux où il y a tout ça. Là je viens de tomber sur cette implémentation via un commentaire sur Clubic (téléchargement :o) du soft UnixDos qui est un shareware :/ et j'ai l'impression que UnxUtils roxxe sa maman (si on a pas besoin de gcc et tout le toutim bien entendu), juste grep, awk :love: et autres (mmh unique?)


Message édité par phosphoreloaded le 21-04-2006 à 15:40:11
n°2390271
freds45
Posté le 21-04-2006 à 15:52:22  profilanswer
 

Citation :

connexion quasi-permantente à un serveur Linux où il y a tout ça


tu parles de cygwin :??: ?


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
mood
Publicité
Posté le 21-04-2006 à 15:52:22  profilanswer
 

n°2390285
Le Ouinhin​ Pervers
Posté le 21-04-2006 à 15:57:20  profilanswer
 

Il existe aussi MinGW/MSYS, très simple à installer.
http://sourceforge.net/forum/forum.php?forum_id=539405


Message édité par Le Ouinhin Pervers le 21-04-2006 à 15:58:08
n°2390314
Capt1TaRac​e
Posté le 21-04-2006 à 16:42:48  profilanswer
 

Merci pour vos réponses.
J'ai tenté la méthode avec UnxUtils, c'est vraiment efficace.
 
Au début j'ai cru que ça n'avait pas marché car ça a été instantané, mais en fait si, ça marche :D
 
Tres bon prog phosphoreloaded ;)
 
Ca va plus vite qu'à la main lol.
 
Capt1TaRace

n°2390679
phosphorel​oaded
Posté le 21-04-2006 à 22:32:21  profilanswer
 

freds45 a écrit :

Citation :

connexion quasi-permantente à un serveur Linux où il y a tout ça


tu parles de cygwin :??: ?


Non en fait au boulot, j'avais un PC perso sous Windows et tout le monde avait accès au serveur qui lui était sous Linux. Ca permet d'avoir le meilleur des 2 mondes: la bureautique sous Windows et le shell et ses outils sous Linux, quitte à transférer/partager les fichiers (c'était il y a quelques années quand Office surpassait OOo :o et que VMware était pas gratos :)). Mais pour une utilisation perso occasionnelle, ce Unxutils m'a l'air drôlement chouette (j'ai entendu du bien de MinGW également :jap: )

n°2390765
Capt1TaRac​e
Posté le 22-04-2006 à 00:11:57  profilanswer
 

Pour info, apparement ya aussi moyen de faire ce que je voulais faire avec ULTRA EDIT.
 
File > Sort...
 
si ça peut en aider ;)

n°2390918
Dji-Pih
Posté le 22-04-2006 à 10:37:36  profilanswer
 

Capt1TaRace a écrit :

Pour info, apparement ya aussi moyen de faire ce que je voulais faire avec ULTRA EDIT.

 

File > Sort...

 

si ça peut en aider  ;)


NotePad++ (libre et gratuit) fait du tri également :
Menu Plugin / TextFx Tools / Sort lines case sensitive (insensitive)

 

n°2864623
lucclement
Posté le 28-05-2009 à 10:52:48  profilanswer
 

Bonjour, j'ai un fichier texte à trier.
je cherche à trier un fichier txt structuré ainsi:  
 
      231               25                    0.000                1.826
      231               26                    0.000               29.133
                    Total :                   0.000               30.958
      278               25                    0.000                0.822
      278               26                    0.000               49.439
                          32                    0.000               0.000  
                    Total :                   0.000               50.261
 
Je dois garder le nombre "231" et mettre à la suite les résultats correspondants (Les deux nombres écrits après "total" ) séparés d'une tabulation.
Ex:  231 0.000 30.958  
      278 0.000 50.261            
 
Merci de votre aide
Je suis novice dans la programmation  

n°2864630
Z_cool
HFR profile rating:⭐⭐⭐⭐
Posté le 28-05-2009 à 11:03:22  profilanswer
 

comme precedement, je conseillerais d'utiliser Grep (pour windows  si c'est ton OS)

 

grep -E "^231" c:\monfichier.txt c:\resultat.txt

 

en considérant que le 231 est en tout début de ligne

 

par contre ca recalculera pas le total

Message cité 1 fois
Message édité par Z_cool le 28-05-2009 à 11:07:22

---------------
#mais-chut    ᓚᘏᗢ
n°2864692
booster
Et je vous fait lire ca...
Posté le 28-05-2009 à 14:13:57  profilanswer
 

Z_cool a écrit :

comme precedement, je conseillerais d'utiliser Grep (pour windows  si c'est ton OS)
 
grep -E "^231" c:\monfichier.txt c:\resultat.txt
 
en considérant que le 231 est en tout début de ligne
 
par contre ca recalculera pas le total


En complément à ta réponse:  
En prenant awk et grep for windows, on peut les combiner pour n'obtenir que un espace  entre les nombres, permettant d'obtenir le résultat comme il l'a écrit  
more ton_fichier|grep "^231"|awk -F" " {print$1,$3,$4} > le_fichier_résultat
 
le more affiche le fichier, puis les 2 pipes (|) filtrent. Le grep pour les lignes ou le 231 est contenu, le awk pour supprimer les tabulations/espaces trop grands et ramener à un espace unique. Le ">" redirige  le résultat dans un fichier de ton choix

Message cité 1 fois
Message édité par booster le 28-05-2009 à 14:26:55

---------------
Booster, the only one (thanks God...)
n°2864713
ngkreator
Posté le 28-05-2009 à 15:07:43  profilanswer
 

Juste comme ça sous Windows on a un outil qui s'appelle cmd   [:chris barnes]  , pas besoin d'installer des soft unix à tout bou de champ:

Code :
  1. for /f %i in ('find "customer" toto.txt') do @echo %i >> rienquecustomer.txt

n°2864715
freds45
Posté le 28-05-2009 à 15:15:35  profilanswer
 

ngkreator a écrit :

Juste comme ça sous Windows on a un outil qui s'appelle cmd   [:chris barnes]  , pas besoin d'installer des soft unix à tout bou de champ:

Code :
  1. for /f %i in ('find "customer" toto.txt') do @echo %i >> rienquecustomer.txt



Citation :

Posté le 21-04-2006 à 09:58:54

:)


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°2864716
ngkreator
Posté le 28-05-2009 à 15:25:47  profilanswer
 

C'est pas moi qui ai relancé le sujet [:cosmoschtroumpf]

n°2864719
freds45
Posté le 28-05-2009 à 15:34:53  profilanswer
 

Oui, mais tu ne réponds pas à la question la plus récente :whistle:


Message édité par freds45 le 28-05-2009 à 15:35:01

---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°2864720
ngkreator
Posté le 28-05-2009 à 15:37:29  profilanswer
 

Ah oui. Pour la 2ème question j'avoue que cmd est limité, il faudrait faire un batch avec des boucles. Faut pas trop lui en demander.

n°2868375
Z_cool
HFR profile rating:⭐⭐⭐⭐
Posté le 12-06-2009 à 14:54:02  profilanswer
 

booster a écrit :


En complément à ta réponse:
En prenant awk et grep for windows, on peut les combiner pour n'obtenir que un espace  entre les nombres, permettant d'obtenir le résultat comme il l'a écrit
more ton_fichier|grep "^231"|awk -F" " {print$1,$3,$4} > le_fichier_résultat

 

le more affiche le fichier, puis les 2 pipes (|) filtrent. Le grep pour les lignes ou le 231 est contenu, le awk pour supprimer les tabulations/espaces trop grands et ramener à un espace unique. Le ">" redirige  le résultat dans un fichier de ton choix

 


Tu peux retirer le more
grep "^231" ton_fichier|awk -F" " {print$1,$3,$4} > le_fichier_résultat

 

mais bon, c'est du fignolage   :jap:

  
ngkreator a écrit :

Juste comme ça sous Windows on a un outil qui s'appelle cmd   [:chris barnes]  , pas besoin d'installer des soft unix à tout bou de champ:

Code :
  1. for /f %i in ('find "customer" toto.txt') do @echo %i >> rienquecustomer.txt


 


grep a plus de possibilité de possibilité sur les expression reguliere il me semble

 

et perso, je les ai comparé niveau vitesse, grep a fini de travailler que find a pas passer la moitié (sur des fichiers de LOG en Txt de 2Go)

Message cité 1 fois
Message édité par Z_cool le 12-06-2009 à 14:54:34

---------------
#mais-chut    ᓚᘏᗢ
n°2868397
Latrinite
Posté le 12-06-2009 à 15:47:32  profilanswer
 

Z_cool a écrit :

et perso, je les ai comparé niveau vitesse, grep a fini de travailler que find a pas passer la moitié (sur des fichiers de LOG en Txt de 2Go)

 

Des logs de 2 go n'ont pas été généré de manière personnelle, donc je pense que le soft qui génère ça doit avoir sa communauté qui a déjà travaillé sur des progs d'analyse de log (pour ne pas citer Squid que j'ai comme exemple en tête). Sinon c'est dommage... Mais intéressant à mettre en place !


Message édité par Latrinite le 12-06-2009 à 15:47:53
mood
Publicité
Posté le   profilanswer
 


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

  Comment trier un .txt ?

 

Sujets relatifs
Code parental, comment trier les sites?[Excel 2003] Trier un liste en fonction d'une autre.
Bien trier sa musique sous windows media playerFoxmail : Trier la BAL de récep. par date, la corbeille par taille etc
Trier une ligne sur 10 dans un tableauTrier automatiquement des données Excel
Trier par nom menu demarrerTrier sous Excel, pour les pros ?
Comment trier des MP3 avec Nero? Au secoursTrier les fichiers par type dans l explorateur
Plus de sujets relatifs à : Comment trier un .txt ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)