Comment trier un .txt ? - Logiciels - Windows & Software
Marsh Posté le 21-04-2006 à 10:54:11
Si tu as Excel, tu peux en faire quelque chose facilement...
Marsh Posté le 21-04-2006 à 15:12:13
Je connais pas trop les macro sous Excel.
Pourrais-tu m'en dire plus stp ??
Marsh Posté le 21-04-2006 à 15:25:20
Pas forcément besoin de macro. Tu as des formules qui te permettent de faire un peu de manipulation de texte.
Marsh Posté le 21-04-2006 à 15:32:43
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.
Marsh Posté le 21-04-2006 à 15:34:49
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) |
Va vérifier via l'explorateur de fichier que C:\rienquecustomer.txt contient bien ce que tu veux, c'est terminé
Marsh Posté le 21-04-2006 à 15:35:31
+1 pour grep, j'avais pensé à cygwin
Marsh Posté le 21-04-2006 à 15:39:08
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 ) 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 et autres (mmh unique?)
Marsh Posté le 21-04-2006 à 15:52:22
Citation : connexion quasi-permantente à un serveur Linux où il y a tout ça |
tu parles de cygwin ?
Marsh Posté le 21-04-2006 à 15:57:20
Il existe aussi MinGW/MSYS, très simple à installer.
http://sourceforge.net/forum/forum.php?forum_id=539405
Marsh Posté le 21-04-2006 à 16:42:48
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
Tres bon prog phosphoreloaded
Ca va plus vite qu'à la main lol.
Capt1TaRace
Marsh Posté le 21-04-2006 à 22:32:21
freds45 a écrit :
|
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 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 )
Marsh Posté le 22-04-2006 à 00:11:57
Pour info, apparement ya aussi moyen de faire ce que je voulais faire avec ULTRA EDIT.
File > Sort...
si ça peut en aider
Marsh Posté le 22-04-2006 à 10:37:36
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)
Marsh Posté le 28-05-2009 à 10:52:48
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
Marsh Posté le 28-05-2009 à 11:03:22
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
Marsh Posté le 28-05-2009 à 14:13:57
Z_cool a écrit : comme precedement, je conseillerais d'utiliser Grep (pour windows si c'est ton OS) |
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
Marsh Posté le 28-05-2009 à 15:15:35
ngkreator a écrit : Juste comme ça sous Windows on a un outil qui s'appelle cmd , pas besoin d'installer des soft unix à tout bou de champ:
|
Citation : Posté le 21-04-2006 à 09:58:54 |
Marsh Posté le 28-05-2009 à 15:34:53
Oui, mais tu ne réponds pas à la question la plus récente
Marsh Posté le 28-05-2009 à 15:37:29
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.
Marsh Posté le 12-06-2009 à 14:54:02
booster a écrit :
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
ngkreator a écrit : Juste comme ça sous Windows on a un outil qui s'appelle cmd , pas besoin d'installer des soft unix à tout bou de champ:
|
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)
Marsh Posté le 12-06-2009 à 15:47:32
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 !
Marsh Posté le 21-04-2006 à 09:58:54
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
Merci