Bonjour,
En attendant d'être complètement autonome (un jour je l'aurai), je galère sur un tri. En effet, je ne sais pas qu'elle est la meilleur façon et fonction à utiliser.
J'ai quand même réussi à faire un début de script qui me donne la liste suivante en provenance de mon LDAP :
J'ai essayé avec la fonction grep ou la boucle foreach, j'ai réussi simplement à extraire les ligne shadowExpire.dn: uid=toto,ou=People,dc=exemple,dc=org
dn: uid=tata,ou=People,dc=exemple,dc=org
shadowExpire: 14853
dn: uid=coco,ou=People,dc=exemple,dc=org
shadowExpire: 15431
dn: uid=kiki,ou=People,dc=exemple,dc=org
Malheureusement, mon objectif est de sortir que les lignes avec uid qui sont suivies de la ligne shadowExpire. J'essaye de mettre la ligne antérieure dans la variable $flag mais celle ci ne peut pas être prise en compte dans la 2eme condition ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 # !/usr/bin/perl use warnings; use strict; my @list = (`ldapsearch -h hostname.com -D cn=proxyuser,dc=exemple,dc=org -w XXXXXXX -b ou=People,dc=exemple,dc=org uid=* shadowExpire`); foreach my $entry (@list) { chomp ($entry); my @i=$entry; if ($i[0] =~ /dn/) { my $flag = $entry; } if ($i[0] =~ /shadowExpire/) { print "$flag \n $i[0]\n"; $flag=""; } }
Comment puis je faire ?Global symbol "$flag" requires explicit package name at ./shadowexp_control.pl line 15.
Global symbol "$flag" requires explicit package name at ./shadowexp_control.pl line 16.
Merci de votre aide.
Merci pour votre aide ...
Partager