Rechercher : dans
Par :

Supprimer une ligne ne contenant pas 1 valeur

Dernière réponse le 21 oct 2009 à 17:57:02 dpart, le 19 oct 2009 à 18:11:21 
 Signaler ce message aux modérateurs

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 .

Configuration: Windows XP
Firefox 3.5.3
Word 2002

Meilleures réponses pour « Supprimer une ligne ne contenant pas 1 valeur » dans :
Sed - Introduction à SED - Part III VoirSED - The Stream EDitor - Part III Ce document est une introduction à la pratique et à l'utilisation de l'éditeur de flux "SED", qui essaie de couvrir certaines fonctionnalités assez méconnues, pour ne pas dire "quasi inconnues", qui font de "SED"...
Sed - Supprimer une ou plusieurs lignes d'un fichier VoirSupprimer une (ou plusieurs) ligne(s) d'un fichier Syntaxe sed '{[/]||[/]}d' sed '{[/][,][/]d' /.../ = délimiteurs n = le numéro de ligne chaîne = la chaîne contenue dans la...

1

dpart, le 19 oct 2009 à 18:17:37

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"

Répondre à dpart

2

Alain_42, le 19 oct 2009 à 18:19:22

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

Répondre à Alain_42

3

Zep3k!GnO, le 19 oct 2009 à 18:23:59

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++ => http://www.01net.com/telecharger/windows/Internet/editeur_de_site/fiches/29119.html

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...

Répondre à Zep3k!GnO

5

dpart, le 19 oct 2009 à 18:39:26

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 ?

Répondre à dpart

10

Zep3k!GnO, le 20 oct 2009 à 12:50:25

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é....
Zep3k!GnO

On est des rangers mec, des rangers...

Répondre à Zep3k!GnO

4

dpart, le 19 oct 2009 à 18:24:55

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.

Répondre à dpart

6

lami20j, le 19 oct 2009 à 18:55:48

Salut,
Avec sed (le fichier original sera sauvegarder avec le nom fichier.txt.txt)

sed -i.txt '/42218/!d' fichier.txt
106485010510997108

Répondre à lami20j

7

dpart, le 19 oct 2009 à 19:12:09

Bon et merci, mais pour moi "sed" c'est du chinois...

Répondre à dpart

8

lami20j, le 19 oct 2009 à 19:26:30

Salut,

Télécharge sed ici http://downloads.sourceforge.net/gnuwin32/sed-4.2-1-setup.ex­e

Ensuite installe le.

Voici un exemple d'utilisation http://cjoint.com/data/kttzUEAxlD.htm
Ce n'est pas compliqué ;-)

106485010510997108

Répondre à lami20j

9

dpart, le 19 oct 2009 à 20:29:18

Nickel, c'est parfait, merci !

Répondre à dpart

11

dubcek, le 20 oct 2009 à 13:03:01
  • +2

Hello
je ne veux donc conserver que la première ligne, qui contient "42218"
en DOS
findstr "42218" fichier.txt > fichier2.txt

Répondre à dubcek

13

lami20j, le 20 oct 2009 à 18:00:14

Salut,

Merci ;-) 106485010510997108

Répondre à lami20j

12

Zep3k!GnO, le 20 oct 2009 à 14:15:25

Ouahhh, nice ! Je connaissais pas, ça claque ! :)
Zep3k!GnO

On est des rangers mec, des rangers...

Répondre à Zep3k!GnO

14

 dpart, le 21 oct 2009 à 17:57:02

Merci à tous !

Répondre à dpart