Forum Programmation.shell Script comparaison contenu fichier

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
0
9
nov.
2016

Bonjour,

Je me permets de vous solliciter sur un problème rencontrer sur la rédaction d'un script pour mon stage en entreprise. Je souhaiterais comparer deux fichiers de configuration à l'aide d'un script bash car c'est le seul pour lequel j'ai des légères notion afin de vérifier que la configuration est uniforme.

Je souhaiterais donc comparer deux fichiers texte de ce type :

ltm node FE_LTM_01_SL_SBT1_IN { address X.X.X.X app-service none connection-limit 0 description FE_LTM_01_SL_SBT1_IN
ltm node FE_LTM_01_SL_WAP_IN { address Y.Y.Y.Y app-service none connection-limit 0 description FE_LTM_01_SL_WAP_IN
ltm node FE_LTM_01_SL_WEB_IN { address Z.Z.Z.Z app-service none connection-limit 0 description FE_LTM_01_SL_WEB_IN

Je souhaiterais donc traduire cet algo :

  • Parcourir le fichier 1 [boucle while avec read line]
  • Pour chaque ligne du fichier1 extraire le nom du nœud [cut -d " " -f3]
  • Pour chaque lignes du fichier2 chercher le nœud des n lignes du fichier1
    • Si nœud présent dans fichier1 et fichier2 passer a la ligne suivante du fichier1 (plus tard vérifier que les paramètres de chacun des nœuds sont identique
    • Sinon recopier la ligne manquante dans fichier nommé résultat.txt

J'ai énormément de mal a mettre en place la boucle permettant de vérifier la présence de chacun des nœuds des n lignes du fichier1 sur les nœud des n lignes du fichier2.

Cordialement,

  • # diff

    Posté par  . Évalué à 7.

    et les outils de base ne te suffisent pas ?

    diff -u fichier1 fichier2

    • [^] # j’ai rien dit

      Posté par  . Évalué à 0. Dernière modification le 09 novembre 2016 à 19:59.

  • # grep

    Posté par  . Évalué à 4.

    En fait tu cherches à savoir si tes deux fichiers contiennent les mêmes lignes, mais pas nécessairement dans le même ordre ?

    Si c’est le cas, diff comme dit plus haut, avec un sort avant…

  • # python

    Posté par  (Mastodon) . Évalué à 3.

    Salut,

    Tu peux aussi faire un script en python qui te permettra de faire tes comparaison plus confortablement… après, si c'est pour un TP, diff va très bien :)

    Courage !

  • # Le problème avec diff

    Posté par  . Évalué à 1.

    Bonjour a tous et merci de vos retour,

    J'avais effectivement dans l’idée d'utiliser diff pour mon problème mais sachant qu'il compare les fichiers ligne par ligne donc si une des lignes du fichier de configuration n'est pas présente dans le second fichier même si je fais un trie avec sort avant la commande m'indiquerais que des différences alors que ce n'est pas le cas..

    Pour ce qui est ne python je n'ai aucune notion..
    D’où mon idée d'aller rechercher le nom du nœud de chaque ligne de configuration et le rechercher dans le second fichier a l'aide d'une boucle.

    • [^] # Re: Le problème avec diff

      Posté par  . Évalué à 3. Dernière modification le 13 novembre 2016 à 15:26.

      J'avais effectivement dans l’idée d'utiliser diff[…]donc si une des lignes du fichier de configuration n'est pas présente dans le second fichier
      […]la commande m'indiquerais que des différences alors que ce n'est pas le cas..

      ben juste si
      si une ligne n'est pas presente dans l'autre fichier c'est une difference,
      c'est meme une difference MAJEURE

      ou alors je n'ai pas compris ce que tu cherches à differencier.

      diff va te trouver :
      - une ligne qui n'existe pas dans l'autre fichier
      - une ligne qui n'est pas strictement identique à la meme ligne dans le 2e fichier (au caratere pret)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.