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

Shell et commandes GNU Discussion :

Comparaison entre deux paragraphes


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2013
    Messages : 3
    Par défaut Comparaison entre deux paragraphes
    Salut,

    Je suis débutante en Shell, j'aimerais bien votre aide.

    Je dois faire un script qui va parcourir un fichier de configuration et voir si mes paramètres sont corrects en se basant sur un ensemble de préconisations.

    ex :
    pour mon fichier de configuration dns named.conf
    le script doit aller lire la configuration de zone "home4" et confirmer qu'elle est correcte en faisant la comparaison avec la directive suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #configuration home4 :
    zone "home4.fr" {
      type master;
      file "/etc/bind/zones/db.home3.fr";
      allow-transfer {213.186.3.120;};
    };
    avez- vous une idée sur la commande que je peux utiliser pour cette comparaison ?

    merci par avance pour votre aide

    Mery

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    y'a plusieurs méthode mais une selection avec sed et une comparaison avec diff semblent suffir à faire ç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
    sh-4.2$ cat > /tmp/a
    #configuration home4 :
    zone "home4.fr" {
      type master;
      file "/etc/bind/zones/db.home3.fr";
      allow-transfer {213.186.3.120;};
    };
    sh-4.2$ cp /tmp/a /tmp/b
    sh-4.2$ sed '/#config/,/$};/ !d' /tmp/a | diff - /tmp/b # il n'y aura pas de différence
    sh-4.2$ 
    sh-4.2$ echo toto>> /tmp/b # pour créer une différence
    sh-4.2$ sed '/#config/,/$};/ !d' /tmp/a | diff - /tmp/b # la il y aura 1 ligne de différence.
    6a7
    > toto
    sh-4.2$ 
    sh-4.2$ rm /tmp/{a,b}
    on a bien comparer le texte référent (ici contenu dans /tmp/a) au texte à soumis (ici /tmp/b)
    et la ligne incohérente a bien été sortie

    sur ce principe, il est très simple de créer une fonction adaptée à ton besoin, en changeant au besoin les délimiteurs dans la commande sed, en utilisant des variables, et de même en changeant le fichier soumis à la comparaison

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

Discussions similaires

  1. Comparaison entre deux variables
    Par delavega dans le forum ASP
    Réponses: 8
    Dernier message: 23/11/2006, 16h42
  2. Comparaison entre deux dates dans une table
    Par Biskot75 dans le forum Access
    Réponses: 6
    Dernier message: 19/09/2006, 11h16
  3. Réponses: 6
    Dernier message: 18/04/2006, 13h11
  4. Comparaison entre deux champs de deux tables différentes
    Par liam81150 dans le forum Requêtes
    Réponses: 1
    Dernier message: 26/09/2005, 20h53

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