Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide Recherche
2702 connectés 

  FORUM HardWare.fr
  OS Alternatifs
  Codes et scripts

  [RESOLU][BASH] Comparaison d'un contenu d'un fichier texte avant ajout

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU][BASH] Comparaison d'un contenu d'un fichier texte avant ajout

n°1195355
tuxbot
Posté le 27-01-2010 à 13:05:20  profilanswer
 

Bonjour à tous les codeurs d'hfr ;-) ,
 
J'ai mes scripts d'ajout de textes dans des fichiers donnés qui me posent problème. En effet je n'ai pas trouvé le moyen d'éviter qu'ils ajoutent aveuglément les redirections des echo à la suite du contenu déjà existant dans le fichier malgrè la lecture de Bash.
 
Pour mieux me faire comprendre, voici un exemple d'un de mes scripts :
 

Code :
  1. echo "# Démarrage Lighttpd
  2. if [ X\"${lighttpd}\" == X\"YES\" -a -x /usr/local/sbin/lighttpd ]; then
  3.    echo -n \" lighttpd \"
  4.    /usr/local/sbin/lighttpd -f /etc/lighttpd.conf
  5. fi" >> /etc/rc.local


La condition if est rajoutée à la suite du contenu du fichier lighttpd.conf mais le souci c'est qu'au cas ou une personne exécutera par erreur le script une deuxième fois elle viendra s'inscrire une deuxième fois dans le fichier.  :pfff:  
 
Pouvez-vous me donner une astuce pour que le script compare le contenu du echo avec le contenu déjà du fichier avant de rajouter le rajouter automatiquement ?
 
Merci d'avance pour vos réponses.  :jap:


Message édité par tuxbot le 27-01-2010 à 15:33:59

---------------
[ACH] Serveur IBM compatible AIX 7.1// Mon Feedback HFR
mood
Publicité
Posté le 27-01-2010 à 13:05:20  profilanswer
 

n°1195356
WedgeAnt
Da penguin inside
Posté le 27-01-2010 à 13:07:18  profilanswer
 

tu fais un grep de la ligne à ajouter et si tu trouves rien, tu fais l'ajout :jap:


---------------
Da penguin manchot inside à l'interieur :o -#- RypDVD -#- Slackware-fr -#- PW: +∞
n°1195357
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 27-01-2010 à 13:08:08  profilanswer
 

grep sur un marqueur :spamafote:

 

par exemple regarde si "/usr/local/sbin/lighttpd -f /etc/lighttpd.conf" existe dans rc.conf

 

grep "/usr/local/sbin/lighttpd -f /etc/lighttpd.conf" || <action d'ajout>

 

edit : [:benou_grilled] mais ma réponse est plus complète :o


Message édité par black_lord le 27-01-2010 à 13:08:33

---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - ch'baraque !!
n°1195401
tuxbot
Posté le 27-01-2010 à 15:03:16  profilanswer
 

Merci pour vos réponses, je commençais déjà à complexifier inutilement mon code avec une boucle alors que la réponse était toute simple.  :sweat:  
 
Autrement je pensais à afficher un message au cas ou le script serait déjà existant avec :
 

Code :
  1. if grep "machin" /etc/rc.local 2> /dev/null; then
  2. echo "Chaine de caractéres déjà existante"
  3. else
  4. echo "machin" >> /etc/rc.local
  5. fi


 
Mais est-ce qu'il est possible d'utiliser une astuce pour simplifier ce code avec un OU logique ?
 
Merci d'avance pour vos réponses.  :jap:


Message édité par tuxbot le 27-01-2010 à 15:08:25

---------------
[ACH] Serveur IBM compatible AIX 7.1// Mon Feedback HFR
n°1195402
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 27-01-2010 à 15:10:29  profilanswer
 

oui, d'où mon ||


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - ch'baraque !!
n°1195412
tuxbot
Posté le 27-01-2010 à 15:32:43  profilanswer
 

Oups je me tais, j'avais bien compris ce qu'étais un OU logique, mais je n'avais pas trop compris le manuel de Bash. Je faisais donc un & au lieu d'un &&. Effectivement ça ne risquais pas de fonctionner.  :sarcastic:  
 
Encore une fois, problème [RESOLU] grâce à votre aide.  :jap:  
 
Je pense avoir maintenant toutes les bases pour me débrouiller tout seul pour le script d'administration de plusieurs centaines de lignes que je prépare.  
Encore une fois, merci d'avoir pris le temps de me répondre. [:yeah]


Message édité par tuxbot le 27-01-2010 à 15:33:44

---------------
[ACH] Serveur IBM compatible AIX 7.1// Mon Feedback HFR

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  OS Alternatifs
  Codes et scripts

  [RESOLU][BASH] Comparaison d'un contenu d'un fichier texte avant ajout

 

Sujets relatifs
[RESOLU[BASH] Convertir des commandes d'install de paquets en script ?[Résolu]-- script pour relancer la carte réseau
[RESOLU] [BASH] Récupérer une date dans une string[résolu] renseignement sur virtualisation windows
[Bash] Boucle While qui ne sort pas[ RESOLU ] X hs sur archlinux
[vim] commandes en tête de fichier texte [résolu] 
Plus de sujets relatifs à : [RESOLU][BASH] Comparaison d'un contenu d'un fichier texte avant ajout


Hit-Parade
Copyright © 1997-2012 Hardware.fr SARL / Groupe LDLC / LesNumeriques.com / Version anglaise du site: BeHardware