IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Supprimer les lignes d'un fichier texte contenant une chaine de caractères [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre éclairé Avatar de arcane
    Inscrit en
    Avril 2003
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 313
    Par défaut Supprimer les lignes d'un fichier texte contenant une chaine de caractères
    Bonjour,
    je tente de supprimer d'un fichier texte toutes les lignes contenant une chaine de caractères particulière.
    Exemple : j'ai ce fichier texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    TAHITI
    sdjfqhjkTAHITI
    ZZZ
    zzz
    aaa
    Je voudrais supprimer toutes les lignes contenant zzz donc je veux obtenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TAHITI
    sdjfqhjkTAHITI
    ZZZ
    aaa
    J'ai un script (qui ne fonctionne pas, sinon je ne poserais pas la question ;-) comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    @echo off
    setlocal
    
    set "nom_fichier=testfichier2.txt"
    set "chaine=zzz"
    
    type nul > resultat.txt
    
    set "temp_fichier=resultat.txt"
    
    echo Suppression des lignes contenant "%chaine%" dans "%nom_fichier%"...
    
    for /f "usebackq delims=" %%a in ("%nom_fichier%") do (
    rem  echo %%a | findstr /v  "%chaine%" > nul
      echo %%a | findstr /v  "%chaine%" > nul
      if !errorlevel! == 0 (
        echo %%a >> "%temp_fichier%"
      )
    )
    
    move /y "%temp_fichier%" "%nom_fichier%" > nul
    
    echo Suppression terminee.
    
    endlocal
    Dans le même dossier,
    - je lis testfichier2,
    - je crée un fichier temporaire resultat,
    - Pour chaque ligne je teste si la chaine est présente, si ce n'est pas le cas (avec le /v) je réécris la ligne dans le fichier temporaire
    - Je renomme les fichiers

    Pour le moment, il n'écrit rien dans le fichier.
    Si j'inverse la condition, (en mettant neq à la place de ==) il écrit tout.
    En fait, le test de recherche ne fonctionne pas, je ne trouve pas l'erreur
    Merci de votre aide.

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 427
    Par défaut
    Bonjour,
    Pour avoir toutes les lignes d'un fichier qui ne contiennent pas une chaîne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    type toto.txt | find "LaChaîne" /v > toto2.txt
    Pour ne pas tenir compte de la casse (de la chaîne ), il faut ajouter /I à la commande find.

    Tatayo.

  3. #3
    Membre éclairé Avatar de arcane
    Inscrit en
    Avril 2003
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 313
    Par défaut
    Pourquoi faire compliqué quand on peut faire simple
    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer les lignes d'un fichier
    Par Wisefool dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 28/02/2011, 09h18
  2. Supprimer les lignes d'un fichier texte
    Par radhwene dans le forum Langage
    Réponses: 1
    Dernier message: 20/06/2007, 11h01
  3. Boucle qui parcourt tout les ligne d'un fichier text
    Par accro-macro dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 10/05/2007, 20h21
  4. Réponses: 2
    Dernier message: 19/09/2006, 21h34
  5. Supprimer certaines lignes d'un fichier texte
    Par kek_net dans le forum Langage
    Réponses: 2
    Dernier message: 10/04/2006, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo