** Comment trouver plusieurs termes séparés dans une liste de texte ? **

J'ai un document .txt qui contient 30.000 lignes, chacune de ces lignes correspond à une animation dans un logiciel d'anim 3D donc pour savoir qui fait quoi c'est la loose.
Heureusement pour moi elles sont déjà triées par ordre alphabétique mais ça s'arrête là.

Par exemple j'ai une ligne comme ça : a2o_espressoMachine_grind_fail_x
Ce qui doit correspondre à quelque chose comme :
adulte à objet -> Machine à expresso -> moût -> échoue sur l'objet en question (x)
Mais moi souvent je cherche deux mots qui ne sont pas côte-à-côte du style "a2o + fail" pour trouver toutes les anim d'adultes qui échouent.

Ma question : Comment et sur quel logiciel (gratuit si possible) je peux trouver plusieurs termes séparés sur une même ligne, et ceux parmis toutes les lignes ?

Merci les ptit pôtes.

Poster un commentaire
blackbird
blackbird
3 ans

En ligne de commande avec du grep ça passe comme une lettre à la poste. Je crains que tu doive te servir des REGEX pour réaliser ta recherche, que ce soit en ligne de commande ou avec un bon éditeur de texte.

Zeptow
Zeptow
3 ans

@blackbird: Yes j'ai trouvé un regex qui a l'air de fonctionner, dans Notepad++ si je tape dans la barre de recherche : a2o(.*)fail
ça me trouve toutes les lignes avec les deux résultats à condition que je les mettent dans l'odre !
Merci à tout ceux qui m'ont répondu, vous êtes tip-top les ptit pôtes o/

anonyme
anonyme
3 ans

À mon avis il y a pas mal de solutions possibles à ton problème. Idée comme ça: pourquoi pas enregistrer ton fichier en .csv puis l'ouvrir dans un tableur en paramétrant les "_" comme des séparateurs de colonne?
Ensuite tu filtres avec les critères dont t'as besoin tu exportes ton fichier au format que tu veux?

Sinon, grep/fgrep si tu peux prendre une journée pour te former dessus ça sera jamais du temps de perdu, sed et/ou awk également pour manipuler les chaînes.

Zeptow
Zeptow
3 ans

@tuFek: Ok je regarderai pour les tableurs un peu plus tard là j’apprends les regex, j'y connais rien à tout ces trucs j'ai l'impression d'avoir ouvert la boîte de Pandore.

anonyme
anonyme
3 ans

@Zeptow: heuu ouais les regex c'est un peu tendu, j'avoue que c'est un chapitre que j'ai toujours plus ou moins esquivé, bon courage! (sinon j'ai cru lire que tu bossais sous python? si t'as des bases, ça doit pouvoir se régler en quelques lignes avec un script tout ça nan? ça te permettrait ptetr de pas repartir de zéro).

Zeptow
Zeptow
3 ans

@tuFek: Alors le python j'ai laissé tomber au bout d'un mois c'est balo ça m'aurait bien servit pour pas mal de trucs, je pense que je m'y remettrai un jour. mais là c'est bon j'ai un début de réponse avec un regex.

anonyme
anonyme
3 ans

@Zeptow: allright, en tout cas, si tu trouves des docs sympa et pas trop assommantes sur les regex, hésite pas à les partager sur le g/info ou g/gnu-linux, perso je suis preneur

Roro51
Roro51
3 ans

Notepad ++ avec les macros. Mais je ne pourrai pas t'aider dans la programmation

Zeptow
Zeptow
3 ans

@Roro51: Bha ouai j'ai que notepad et je fais Ctrl+F mais je ne peux pas aller plus loin.

gargouille

@Zeptow: notepad++ est un logiciel différent de notepad.

Zeptow
Zeptow
3 ans

@gargouille: Ha effectivement je vais aller voir ça alors, merci.

Waio
Waio
3 ans

Avec python.
en premier tu sépares les thermes de la ligne au niveau des _, tu fais une première boucle pour trouver le premier therme et tu continues pour trouver le second therme.

ico_
ico_
3 ans

@Waio: avec panda tu sais le faire il me semble

anonyme
anonyme
3 ans

@Waio: ce que je recommande quand t'as plusieurs thermes, c'est de prendre des bains d'argiles avec des massages enveloppants, c'est hyper relaxant.

MichelMabel

Avec grep sous linux ou avec powershell sous windows : https://antjanus.com/blog/web-development-tutorials/how-to-grep-in-powershell/

Zeptow
Zeptow
3 ans

@MichelMabel: Ça à l'air d'être hyper compliqué powershel, j'imaginais plus un traitement de texte comme excel mais en plus basique.

Billydemerde

Et sur Excel tout simplement ? Faut juste réussir à faire en sorte qu'il reconnaisse une ligne = une cellule

Quartz
Quartz
3 ans

Tu peux pas le convertir en bdd sqlite (il y a des outils en ligne style mygeodata.cloud) et ensuite requêter directement via sqlite browser ou équivalent ?

Loulilop
Loulilop
3 ans

Comme dit Todor quand tu traites une quantité des données comme ça c'est aberrant de l'avoir en .txt.
Si tu arrives à l'avoir au format excel (ou csv) tu peux faire des petites règles de check très simples pour faire ressortir les cellules qui contiennent les mots que tu cherches.

Gaucho
Gaucho
3 ans

Agent ransack

TodorTupolev

Un fichier .txt de 30000 lignes ça s'appelle de l'incompétence

Zeptow
Zeptow
3 ans

@TodorTupolev: C'est juste une liste d'animations tiré d'un moteur de jeu, à la base ça devait ressembler à du code compilé en langage python et quelqu'un là gentiment décompilé pour moi alors je m'estime encore heureux.

Cette page est réservée aux ADULTES

Tu es sur le point d'accéder à un site web qui contient du matériel explicite (pornographie).

Tu ne dois accéder à ce site que si tu as au moins 18 ans ou si tu as l'âge légal pour visionner ce type de matériel dans ta juridiction locale, l’âge le plus élevé étant retenu. En outre, tu déclares et garantis que tu ne permettras aucun mineur à d'accéder à ce site ou à ces services.


En accédant à ce site, tu acceptes nos conditions d'utilisation.