Supprimer une ligne ne contenant pas 1 valeur

Résolu/Fermé
dpart - 19 oct. 2009 à 18:11
pitibalrog Messages postés 1 Date d'inscription samedi 18 janvier 2014 Statut Membre Dernière intervention 18 janvier 2014 - 18 janv. 2014 à 10:06
Bonjour,
J'ai un fichier txt avec des centaines de milliers de lignes.
Je ne veut conserver que les lignes qui contiennent la valeur 42218
Vous avez un moyen ?
Sachant que je ne sais pas programmer, bien sûr !
Merci d'avance, votre aide serait très précieuse .
A voir également:

9 réponses

Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
Modifié par Jeff le 24/04/2013 à 22:58
Salut,
alors toi tu vas bénir les expressions régulières !

En gros c'est une forme d'écriture générique pour faire du recherche remplace.
Il faut que tu aies un éditeur de texte qui fait du recherche remplace avec des expressions régulières, genre un notepad++ => https://www.commentcamarche.net/telecharger/developpement/16295-notepad/

Voici selon moi la marche la + simple à suivre :

1] On marque les lignes à garder :
recherche : ^(.*)(42218)(.*)$
remplace : @$1$2$3

2] On supprimes les lignes qu'on ne veut pas
recherche : ^[^@]{1}.*$
remplace par rien , on supprime :
3] On supprime les sauts de lignes superflux :
recherche : \r\n\r\n
remplace : \r\n

4]On supprime le marquage des lignes :
recherche : ^@
remlace par rien, on supprime :

Voilà, y a moyen de le faire en moins d'expressions mais c'est ce qu'il y a de plus simple a écrire/comprendre.

EnJoY !

Zep3k!GnO
On est des rangers mec, des rangers...
11
1ère étape : je remplace effectivement les lignes avec ma valeur par @$1$2$3
Quel est l'intérêt ?

2eme étape: là il ne se passe rien

Je fais mal quelque chose ?
0
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200 > dpart
20 oct. 2009 à 12:50
J'sais pas je dois mal écrire, mal m'exprimer car la + simple tu meurs ....

1ère étape : je remplace effectivement les lignes avec ma valeur par @$1$2$3
Quel est l'intérêt ?


--> 1] On marque les lignes à garder :
==> Bin ça sert a marquer les lignes !

2eme étape: là il ne se passe rien , Je fais mal quelque chose ? : Oui car cette ligne supprime celles qu'on ne veut pas comme je l'ai INDIQUER dans l'intitulé du 2]...

débordé....
0
Le 1) ajoute un @ en début de chaque ligne à garder
=> pour que ça marche il faut bien cocher la case "expression régulière" en bas de la boite de recherche
Le 2) supprime toutes les lignes qui ne commencent pas par @
0
Il y a bien plus simple avec les expressions rationnelles (ExpReg) :

v/42218/d

Ce qui signifie : supprime toutes les lignes qui ne contiennent pas la valeur "42218"
0
pitibalrog Messages postés 1 Date d'inscription samedi 18 janvier 2014 Statut Membre Dernière intervention 18 janvier 2014
Modifié par pitibalrog le 18/01/2014 à 10:07
Le sujet est un peu vieux mais quand je vois qu'on parle de notepad++ avec les expreg je trouve ça génial, par contre quand on propose de faire ce truc en 4 étapes au lieu d'une seule je comprends que ça puisse laisser perplexe.

Pour ne conserver que les lignes contenant 42218 il suffit de rechercher les lignes ne contenant pas 42218 et de les supprimer (en les remplacant par rien).

Pour cela dans notepad++ taper sur les touches du clavier ctrl+H pour ouvrir la fenetre de recherche et remplacement.

Dans le champ "Recherche", taper: ^((?!42218).)*$\n
Laisser le champ "Remplacer par" vide
Cocher "Expression régulière" dans le mode de recherche

Et enfin cliquer sur le bouton remplacer tout. Si jamais cela ne marche pas comme vous voulez tapez sur les touches du clavier ctrl+z pour revenir à l'état précédent.
0