Comparaison entre paragraphes
Résolu
Salut,
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 paramètre.
ex :
pour mon fichier de configuration dns named.conf
le script doit aller lire la configuration de la zone "home4" et confirmer qu'elle est correcte en faisant la comparaison avec la directive suivante :
#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
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 paramètre.
ex :
pour mon fichier de configuration dns named.conf
le script doit aller lire la configuration de la zone "home4" et confirmer qu'elle est correcte en faisant la comparaison avec la directive suivante :
#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
A voir également:
- Comparaison entre paragraphes
- Comparaison million milliard - Accueil - Technologies
- Appliquez à tous les paragraphes du document à télécharger, à l’exception des titres et des sous-titres, la mise en forme suivante : chaque paragraphe doit être espacé de 0,42 cm ou 12 pt du paragraphe qui suit les textes ne doivent pas être en retrait à droite et à gauche après ces modifications, sur quelle page se trouve le titre « la cheminée » dans le chapitre « informations diverses » ? - Guide
- Logiciel comparaison photo gratuit - Télécharger - Photo & Graphisme
- Comparaison samsung a15 et a16 - Accueil - Téléphones
- Comparaison prix amazon - Accueil - Commerce
5 réponses
Le plus simple c'est d'écrire un script awk ou chaque ligne correspond à un "état" d'une machine à état.
https://fr.wikipedia.org/wiki/Automate_fini
Petite illustration si tu ne sais pas ce que c'est. Supposons que tu cherches un paragraphe qui fait 3 lignes. La première correspond à l'état 1, la seconde à l'état 2, la troisième à l'état 3. Au début du script tu pars à l'état 0 (tu peux mémoriser l'état courant dans une variable globale à ton script).
Si tu trouves une ligne qui correspond à la ligne 1 et si tu es à l'état 0, tu passes à l'état 1.
Sinon si tu trouves une ligne qui correspond à la ligne 2 et si tu es à l'état 1, tu passes à l'état 2.
Sinon si tu trouves une ligne qui correspond à la ligne 3 et si tu es à l'état 2, tu passes à l'état 3, alors tu as trouvé le paragraphe recherché.
Dans tous les autres cas tu retombes à l'état 0.
Ça doit ressembler à un truc comme ça :
Ou sinon tu peux installer pcregrep comme suggéré ici :
https://stackoverflow.com/questions/14350856/can-awk-patterns-match-multiple-lines
Bonne chance
https://fr.wikipedia.org/wiki/Automate_fini
Petite illustration si tu ne sais pas ce que c'est. Supposons que tu cherches un paragraphe qui fait 3 lignes. La première correspond à l'état 1, la seconde à l'état 2, la troisième à l'état 3. Au début du script tu pars à l'état 0 (tu peux mémoriser l'état courant dans une variable globale à ton script).
Si tu trouves une ligne qui correspond à la ligne 1 et si tu es à l'état 0, tu passes à l'état 1.
Sinon si tu trouves une ligne qui correspond à la ligne 2 et si tu es à l'état 1, tu passes à l'état 2.
Sinon si tu trouves une ligne qui correspond à la ligne 3 et si tu es à l'état 2, tu passes à l'état 3, alors tu as trouvé le paragraphe recherché.
Dans tous les autres cas tu retombes à l'état 0.
Ça doit ressembler à un truc comme ça :
BEGIN {
ok = 0;
state = 0;
}
/ligne1/ && (state == 0) { state = 1; }
/ligne2/ && (state == 1) { state = 2; }
/ligne3/ && (state == 2) { ok = 1; }
{ state = 0; }
END {
if (ok == 1) {
print "OK"
} else {
print "NOK"
}
}
Ou sinon tu peux installer pcregrep comme suggéré ici :
https://stackoverflow.com/questions/14350856/can-awk-patterns-match-multiple-lines
Bonne chance
En ce qui me concerne, je n'ai pas compris la question. Mais à tout hasard, il existe des outils pour faire des vérifications sur des zones DNS :
https://www.cyberciti.biz/tips/howto-linux-unix-check-dns-file-errors.html
Quelques exemple d'utilisation ici aussi :
http://doc.ubuntu-fr.org/bind9#configuration_serveur_maitre
Bonne chance
https://www.cyberciti.biz/tips/howto-linux-unix-check-dns-file-errors.html
Quelques exemple d'utilisation ici aussi :
http://doc.ubuntu-fr.org/bind9#configuration_serveur_maitre
Bonne chance
je me suis peut être mal exprimé.
je cherche à parser mon fichier de configuration et comparer avec la chaine ci-dessous.
comment je peux faire ça avec un awk ?
NB : ce n'est qu'un exemple, je dois faire la mm chose sur d'autres serveurs, apache, tomcat, et postfix...
je cherche à parser mon fichier de configuration et comparer avec la chaine ci-dessous.
comment je peux faire ça avec un awk ?
NB : ce n'est qu'un exemple, je dois faire la mm chose sur d'autres serveurs, apache, tomcat, et postfix...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question