Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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