Demande d'aide sur script shell
Résolu/Fermé
Namtar
-
12 sept. 2007 à 10:47
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 12 sept. 2007 à 20:31
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 12 sept. 2007 à 20:31
A voir également:
- Demande d'aide sur script shell
- Script vidéo youtube - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Microsoft activation script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script cmd - Guide
6 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
12 sept. 2007 à 13:12
12 sept. 2007 à 13:12
Salut,
je ne suis pas sur d'avoir compris t'as question, voici une solution en perl avec ce que j'ai compris ;-)
je ne suis pas sur d'avoir compris t'as question, voici une solution en perl avec ce que j'ai compris ;-)
root@debian:~# cat namtar <LDAPConfig> <ProcessFilter>DeploymentManager,*,*</ProcessFilter> <Host>directory.echonet</Host> <Port>xxx</Port> <MinConnections>1</MinConnections> <MaxConnections>5</MaxConnections> </LDAPConfig> <SecurityUsers> <User id="1"> <Name>ID user</Name> <DisplayName>Prénom + Nom du user</DisplayName> </User> <User id="2"> <Name>ID user</Name> <DisplayName>Prénom + Nom du user</DisplayName> </User> </SecurityUsers> <SecurityGroups> <AdministratorsGroup> <Member>299466</Member> <Member>328678</Member> <Member>359500</Member> </AdministratorsGroup> root@debian:~# perl -pi.orig -e 's#^#print "<User id=" .$_ . ">\n<Name>ID user</Name>\n<DisplayName>Prénom + Nom du user</DisplayName>\n</User>\n" for (3..5)#e if /(?=\<\/SecurityUsers\>)/' namtar root@debian:~# cat namtar <LDAPConfig> <ProcessFilter>DeploymentManager,*,*</ProcessFilter> <Host>directory.echonet</Host> <Port>xxx</Port> <MinConnections>1</MinConnections> <MaxConnections>5</MaxConnections> </LDAPConfig> <SecurityUsers> <User id="1"> <Name>ID user</Name> <DisplayName>Prénom + Nom du user</DisplayName> </User> <User id="2"> <Name>ID user</Name> <DisplayName>Prénom + Nom du user</DisplayName> </User> <User id=3> <Name>ID user</Name> <DisplayName>Prénom + Nom du user</DisplayName> </User> <User id=4> <Name>ID user</Name> <DisplayName>Prénom + Nom du user</DisplayName> </User> <User id=5> <Name>ID user</Name> <DisplayName>Prénom + Nom du user</DisplayName> </User> </SecurityUsers> <SecurityGroups> <AdministratorsGroup> <Member>299466</Member> <Member>328678</Member> <Member>359500</Member> </AdministratorsGroup>
Mais alors toi t'es génial ;o)
je viens de tester et l'incrémentation du fichier se faite parfaitement au bon endroit. Encore merci ;o)
Le seul petit truc qu'il faut que je trouve c'est comment faire en sorte que la balise <User id="2"> se mette automatiquement en N+1 a chaque insertion. Car j'ai vu que dans ta formule, tu défini toi même les nombre des balises ID grâce a ca : for (3..5) .
c'est à dire (histoire qu'on me comprenne un mieux)
si la derniere balise est <User id="2">, lors de ma prochaine insertion, cette balise doit passer à 3, puis le jours ou je dois encore rajouter un user, elle doit passer à 4 et ainsi de suite.
Je sais que je suis chiant avec toutes mes questions de débutant mais j'avoue ne pas du tout connaitre le Perl et l'awk (ouai je sais c'est inadmissible mais je ne suis dans le monde unix que depuis 3 mois)
en tout cas merci encore pour ton aide qui va déjà beaucoup m'avancer ;o)
je viens de tester et l'incrémentation du fichier se faite parfaitement au bon endroit. Encore merci ;o)
Le seul petit truc qu'il faut que je trouve c'est comment faire en sorte que la balise <User id="2"> se mette automatiquement en N+1 a chaque insertion. Car j'ai vu que dans ta formule, tu défini toi même les nombre des balises ID grâce a ca : for (3..5) .
c'est à dire (histoire qu'on me comprenne un mieux)
si la derniere balise est <User id="2">, lors de ma prochaine insertion, cette balise doit passer à 3, puis le jours ou je dois encore rajouter un user, elle doit passer à 4 et ainsi de suite.
Je sais que je suis chiant avec toutes mes questions de débutant mais j'avoue ne pas du tout connaitre le Perl et l'awk (ouai je sais c'est inadmissible mais je ne suis dans le monde unix que depuis 3 mois)
en tout cas merci encore pour ton aide qui va déjà beaucoup m'avancer ;o)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
12 sept. 2007 à 14:22
12 sept. 2007 à 14:22
c'est ça que tu veux?
root@debian:~# cat namtar <LDAPConfig> <ProcessFilter>DeploymentManager,*,*</ProcessFilter> <Host>directory.echonet</Host> <Port>xxx</Port> <MinConnections>1</MinConnections> <MaxConnections>5</MaxConnections> </LDAPConfig> <SecurityUsers> <User id="1"> <Name>ID user</Name> <DisplayName>Prénom + Nom du user</DisplayName> </User> <User id="2"> <Name>ID user</Name> <DisplayName>Prénom + Nom du user</DisplayName> </User> </SecurityUsers> <SecurityGroups> <AdministratorsGroup> <Member>299466</Member> <Member>328678</Member> <Member>359500</Member> </AdministratorsGroup> root@debian:~# perl -pi.orig -e '++$i if /<User/;s#^#<User id="${\($i+1)}">\n<Name>ID user</Name>\n<DisplayName>Prénom + Nom du user</DisplayName>\n</User>\n# if /(?=\<\/SecurityUsers\>)/' namtarroot@debian:~# cat namtar <LDAPConfig> <ProcessFilter>DeploymentManager,*,*</ProcessFilter> <Host>directory.echonet</Host> <Port>xxx</Port> <MinConnections>1</MinConnections> <MaxConnections>5</MaxConnections> </LDAPConfig> <SecurityUsers> <User id="1"> <Name>ID user</Name> <DisplayName>Prénom + Nom du user</DisplayName> </User> <User id="2"> <Name>ID user</Name> <DisplayName>Prénom + Nom du user</DisplayName> </User> <User id="3"> <Name>ID user</Name> <DisplayName>Prenom + Nom du user</DisplayName> </User> </SecurityUsers> <SecurityGroups> <AdministratorsGroup> <Member>299466</Member> <Member>328678</Member> <Member>359500</Member> </AdministratorsGroup> root@debian:~# perl -pi.orig -e '++$i if /<User/;s#^#<User id="${\($i+1)}">\n<Name>ID user</Name>\n<DisplayName>Prénom + Nom du user</DisplayName>\n</User>\n# if /(?=\<\/SecurityUsers\>)/' namtarroot@debian:~# cat namtar <LDAPConfig> <ProcessFilter>DeploymentManager,*,*</ProcessFilter> <Host>directory.echonet</Host> <Port>xxx</Port> <MinConnections>1</MinConnections> <MaxConnections>5</MaxConnections> </LDAPConfig> <SecurityUsers> <User id="1"> <Name>ID user</Name> <DisplayName>Prénom + Nom du user</DisplayName> </User> <User id="2"> <Name>ID user</Name> <DisplayName>Prénom + Nom du user</DisplayName> </User> <User id="3"> <Name>ID user</Name> <DisplayName>Prenom + Nom du user</DisplayName> </User> <User id="4"> <Name>ID user</Name> <DisplayName>Prenom + Nom du user</DisplayName> </User> </SecurityUsers> <SecurityGroups> <AdministratorsGroup> <Member>299466</Member> <Member>328678</Member> <Member>359500</Member> </AdministratorsGroup> root@debian:~#
HAHUUUUUUUUUUUU merci m'sieur... c'est exactement ce que je voulais ;o)
bon faut vraiment que je mette au Perl
encore merci pour tout, je vais pouvoir finir mon script tranquil now !!
bon faut vraiment que je mette au Perl
encore merci pour tout, je vais pouvoir finir mon script tranquil now !!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
12 sept. 2007 à 15:27
12 sept. 2007 à 15:27
De rien ;-)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
12 sept. 2007 à 20:31
12 sept. 2007 à 20:31
j'ai oublié de te préciser une chose
l'option i.orig permets la modifications et en même temps la sauvegarde ton fichier (dans notre cas namtar ;-)
donc si tu regardes bien tu verras 2 fichiers
namtar et namtar.orig
comme ça en cas de problèmes tu peux toujours récupérer le dernier fichier original au cas où
l'option i.orig permets la modifications et en même temps la sauvegarde ton fichier (dans notre cas namtar ;-)
donc si tu regardes bien tu verras 2 fichiers
namtar et namtar.orig
comme ça en cas de problèmes tu peux toujours récupérer le dernier fichier original au cas où