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 :

Comparaison de contenu de deux fichiers


Sujet :

Scripts/Batch

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Comparaison de contenu de deux fichiers
    Bonjour à tous

    Je cherche aujourd'hui à comparer le contenu de deux fichiers csv, un fichier dit "ancien" (Test.csv), et un nouveau (à jour) (product.csv).
    Seul la comparaison de la première colonne des deux fichiers m'interessent.
    L'idée, c'est de dire:
    - si contenu d'une case de Test.csv n'apparait pas dans product.csv, alors on supprime la ligne dans Test.csv
    - si contenu d'une case de product.csv n'apparait pas dans Test.csv, alors il faut rajouter le case manquante dans Test.csv

    Dans tous les cas, j'aimerai rajouter à la fin de chaque case de la 1ere colonne de product.csv, un identifiant (un caractère quelconque) me permettant d'identifier ce que le programme a parcouru ou pas.

    Aujourd'hui, je ne parviens qu'à identifier une partie des choses: je stocke dans un autre fichier (test2.csv) les mots existant dans les deux bases (test.csv et product.csv), et ceux qui n'existent plus dans un autre fichier (test3.csv)

    Voici mon bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For /F "tokens=1 delims=;" %%o in (Test.csv) do findstr "%%o" Products.csv >nul && echo [le mot %%o existe]>> test2.csv && echo [XXX]>> Products.csv || echo [le mot %%o n'existe plus]>> test3.csv
    je n'arrive pas écrire à la fin de chacune des cases pour identifier les mots comparés, je n'écrit qu'à la fin du fichier à l'heure actuel.
    j'ai essayé la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    findstr /v "%%o" > Test.csv
    pour supprimer une ligne, mais elle me supprime toutes les lignes de mon fichiers...

    Etant débutant en batch, je m'en remets à vos conseils et compétences !

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Après moulte recherches, je n'ai pas trouvé de moyen pour régler mon problème.

    Pour ceux que ça interesse, je vous poste mon code:

    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
    26
    27
    28
    29
    @echo off
    Set Compte=0
    echo [following word are up to date] >> test2.csv 
    echo [following word must be delete] >> test3.csv 
    
    For /F "tokens=1 delims=;" %%i in (Test.csv)  do (
    echo %%i
    set mavar=%%i 
    Set /A Compte+=1
    for /l %%p in (0,1,%Compte%) do (
    
    
    findstr "%%i" product.csv> nul && echo %%i>> test2.csv || echo [%%i ] >> test3.csv 
    pause 
    )
    )
    
    echo [Add following word] >>test2.csv
    For /F "tokens=1 delims=;" %%j in (product.csv) do (
    echo %%j
    set mavar2=%%j
     
    findstr "%%j" test2.csv> nul || echo %%j >>test2.csv 
    pause 
    )
    
    
    pause
    Il répertorie dans un fichier de sortie, les chaines de caractères présentes dans deux fichiers d'entrée que je compare.
    Si dans le second fichier d'entrée, certaines chaines ne sont pas présentes dans le premier fichier d'entrée, alors il les ajoute au fichier de sortie.
    Les chaines de caractères non trouvés, sont répertoriées dans un autre fichier de sortie.

    A plus !

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/11/2010, 15h22
  2. comparer contenu de deux fichiers
    Par Earl7 dans le forum Langage
    Réponses: 5
    Dernier message: 02/02/2009, 16h07
  3. Comparaison et modification de deux fichiers volumineux
    Par roman67 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 04/10/2008, 08h51
  4. Réponses: 1
    Dernier message: 03/10/2008, 16h07
  5. Comparaison du contenu de 2 fichiers
    Par ecniv dans le forum Langage
    Réponses: 11
    Dernier message: 19/08/2006, 21h38

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