Supprimer une ligne ne contenant pas 1 valeur
Résolu
dpart
-
pitibalrog Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
pitibalrog Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
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 .
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:
- Notepad++ supprimer ligne contenant
- Supprimer rond bleu whatsapp - Guide
- Telecharger notepad++ - Télécharger - Édition & Programmation
- Partager photos en ligne - Guide
- Supprimer page word - Guide
- Supprimer pub youtube - Accueil - Streaming
9 réponses
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
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...
hello
je ne veux donc conserver que la première ligne, qui contient "42218"
en DOS
findstr "42218" fichier.txt > fichier2.txt
je ne veux donc conserver que la première ligne, qui contient "42218"
en DOS
findstr "42218" fichier.txt > fichier2.txt
Salut,
Avec sed (le fichier original sera sauvegarder avec le nom fichier.txt.txt)
Avec sed (le fichier original sera sauvegarder avec le nom fichier.txt.txt)
sed -i.txt '/42218/!d' fichier.txt
Je précise que les lignes sont du type :
01004;Ambérieu-en-Bugey;42218;Saint-Étienne;14,966229
01004;Ambérieu-en-Bugey;43157;Le Puy-en-Velay;5,815609
Dans l'exemple ci-dessus, je ne veux donc conserver que la première ligne, qui contient "42218"
01004;Ambérieu-en-Bugey;42218;Saint-Étienne;14,966229
01004;Ambérieu-en-Bugey;43157;Le Puy-en-Velay;5,815609
Dans l'exemple ci-dessus, je ne veux donc conserver que la première ligne, qui contient "42218"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
si tu as excel tu peux faire ça avec
tu tapes Texte dans la premier cellule
ensuite tu copies tout ton fichier par CTRL+C
tu mets ton curseur dans la cellule en dessous et tu y copie tout ton fichier par CTRL+V
parsellectionne tout puis par Donnees
Filtre..
filtre automatique, tu selectionne contient et a cote tu tapes 42218
et OK il ne te restera que les lignes qui t'interressent
tu les copies et colles ou tu veux
tu tapes Texte dans la premier cellule
ensuite tu copies tout ton fichier par CTRL+C
tu mets ton curseur dans la cellule en dessous et tu y copie tout ton fichier par CTRL+V
parsellectionne tout puis par Donnees
Filtre..
filtre automatique, tu selectionne contient et a cote tu tapes 42218
et OK il ne te restera que les lignes qui t'interressent
tu les copies et colles ou tu veux
oui, merci, mais j'ai beaucoup trop de lignes pour ça fonctionne avec excel. Sauf à couper le fichier txt en plusieurs dizaines d'autres...
C'est pour cela que je cherchais un moyen automatique de le faire dans le fichier txt directement.
C'est pour cela que je cherchais un moyen automatique de le faire dans le fichier txt directement.
Salut,
Télécharge sed ici https://sourceforge.net/projects/gnuwin32/files/sed/4.2-1/sed-4.2-1-setup.exe/download?use_mirror=iweb
Ensuite installe le.
Voici un exemple d'utilisation http://cjoint.com/data/kttzUEAxlD.htm
Ce n'est pas compliqué ;-)
Télécharge sed ici https://sourceforge.net/projects/gnuwin32/files/sed/4.2-1/sed-4.2-1-setup.exe/download?use_mirror=iweb
Ensuite installe le.
Voici un exemple d'utilisation http://cjoint.com/data/kttzUEAxlD.htm
Ce n'est pas compliqué ;-)
Quel est l'intérêt ?
2eme étape: là il ne se passe rien
Je fais mal quelque chose ?
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é....
=> 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 @
v/42218/d
Ce qui signifie : supprime toutes les lignes qui ne contiennent pas la valeur "42218"
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.