#1 Le 07/10/2011, à 09:57
- stan14
[RESOLU] Problème de syntaxe dans la commande sed?
Bonjours, je débute dans la programmation en bash est je bloque sur la commande sed, j'ai lut le MAN mais je pense avoir quelque petit problèmes syntaxique.
voici la commande mais elle s'exécute mal
sed -i -e 's/\$Conf{EMailAdminUserName} = 'admin@pouep.plop.tr-uk.fr';/\$Conf{EMailAdminUserName} = $var2;/g'config.pl
Le but de la commande et de complété une ligne : $Conf{EMailAdminUserName} =
Par une variable créé auparavant
Avez vous une idée???
Dernière modification par stan14 (Le 07/10/2011, à 10:59)
Sois content dès qu’une petite chose progresse.
Hors ligne
#2 Le 07/10/2011, à 10:07
- pingouinux
Re : [RESOLU] Problème de syntaxe dans la commande sed?
Bonjour,
Peux-tu détailler un peu ce que tu veux faire : la chaîne que tu as au départ, et celle que tu veux obtenir ?
Hors ligne
#3 Le 07/10/2011, à 10:20
- stan14
Re : [RESOLU] Problème de syntaxe dans la commande sed?
En gro mon script récupéré la base dn dans mon slap.conf et le copie dans un nouveau fichier
Ensuite je nettoie le fichier de c'est espace ponctuation ext ... et apres je veut copier mon résulta que j'affiche dans une variable et le remplacer dans un fichier config.pl pour backuppc
voici le script:
#!/bin/bash
#Petit script pour modifier l'adresse m'ail de l'admin dans le config.pl de backuppc.
#Allons dans le dossier Backuppc et on extrait l'adresse de l'admin
var1=$(grep > /home/florent/Bureau/1234.txt rootdn /etc/ldap/slapd.conf)
#On change les droits
chmod 777 /home/florent/Bureau/1234.txt
chmod 777 /home/florent/Bureau/123.txt
#On modifie l'adresse mail extraite.
sed -i -e "s/cn=admin/admin@/g" /home/florent/Bureau/1234.txt
sed -i -e "s/\,dc=/\./g" /home/florent/Bureau/1234.txt
sed -i -e "s/\"/\'/g" /home/florent/Bureau/1234.txt
sed -i -e "s/\@./\@/g" /home/florent/Bureau/1234.txt
sed -i -e "s/rootdn//g" /home/florent/Bureau/1234.txt
var2=$(sed 's/^[ \t]*//' /home/florent/Bureau/1234.txt)
echo $var2
cd /etc/backuppc/
sed -i -e 's/\$Conf{EMailAdminUserName} = 'admin@pouep.plop.tr-uk.fr';/\$Conf{EMailAdminUserName} = $var2;/g'config.pl
voila les ligne a changer sont la ligne 167 du config pl: $Conf{EMailAdminUserName} = 'admin@pouep.plop.tr-uk.fr';
J'aimerais changer l'adresse mail ce cette ligne par le résultat de ma variable $var2
Sois content dès qu’une petite chose progresse.
Hors ligne
#4 Le 07/10/2011, à 10:30
- pingouinux
Re : [RESOLU] Problème de syntaxe dans la commande sed?
Peut-être ceci :
sed -i -e "s/\$Conf{EMailAdminUserName} = admin@pouep.plop.tr-uk.fr;/\$Conf{EMailAdminUserName} = $var2;/g" config.pl
ou
sed -i -e "s/\$Conf{EMailAdminUserName} = 'admin@pouep.plop.tr-uk.fr';/\$Conf{EMailAdminUserName} = $var2;/g" config.pl
si les ' ' encadrent admin@pouep.plop.tr-uk.fr dans config.pl
Modifié
Dernière modification par pingouinux (Le 07/10/2011, à 10:37)
Hors ligne
#5 Le 07/10/2011, à 10:40
- stan14
Re : [RESOLU] Problème de syntaxe dans la commande sed?
Parfait sa a l'aire de bien fonctionné avec la dexieme solution, il y a bien des '' qui encadrent l'adresse
Mais lorsque qu'a la place de admin@pouep.plop.tr-uk.fr il y a une autre adresse ya t'il un moyent de dire a sed sa:
sed -i -e "s/\$Conf{EMailAdminUserName} = \'qu'importe l'adresse\';/\$Conf{EMailAdminUserName} = $var2;/g" config.pl
dans ce cas sa nous ferrai un:
sed -i -e "s/\$Conf{EMailAdminUserName} = \'*\';/\$Conf{EMailAdminUserName} = $var2;/g" config.pl
Sois content dès qu’une petite chose progresse.
Hors ligne
#6 Le 07/10/2011, à 10:52
- pingouinux
Re : [RESOLU] Problème de syntaxe dans la commande sed?
Oui, c'est possible. Pour remplacer tout ce qui ressemble à 'nom@domaine';
sed -e "s/\(\$Conf{EMailAdminUserName} =\) '.*@.*';/\1 $var2;/g" config.pl
Au passage, j'ai introduit \1 qui remplace ce qui se trouve entre \( \)
Hors ligne
#7 Le 07/10/2011, à 10:57
- stan14
Re : [RESOLU] Problème de syntaxe dans la commande sed?
C'est nikelle sa fonctionne bien maintenant plus qu'a lui dire d'enregistrer les modification dans le config.pl et mon script sera fini.
Merci beaucoup pour ton aide grasse au script je débute avec la commande sed mais je suis loin d'avoir utilisé toute c'est performance
Merci encore ^^
Sois content dès qu’une petite chose progresse.
Hors ligne
#8 Le 07/10/2011, à 11:01
- pingouinux
Re : [RESOLU] Problème de syntaxe dans la commande sed?
sed est une commande très puissante, mais tu n'as pas commencé par une utilisation simple.
À la prochaine
Hors ligne