Bonjour,
Je souhaite extraite d'un fichier de configuration quelques lignes, jusqu'à la rien d'extraordinaire, sauf peut être pour un novice !
Voici une partie de mon fichier de configuration :
# Config File
#
# Create and configure extension PC
#
extension PC set lang=FR
extension PC set timeoffset=7200
...
#
# Create and configure user PC_10
#
user PC_10 set addr=10.10.10.10
user PC_10 set dhcp=disable
...
user PC_10 set ping-timeout=300
#
# Create and configure user PC_11
#
... |
Je souhaite récupérer uniquement les éléments user PC_10, user PC_11....
Vu que je ne connais pas le nombre de PC avant l'exécution du script, je commence par selectionner les lignes de commentaires :
Code :
- my $FILE = "/home/masterlolo/config.pc";
- my ($LIGNE, @PC, $PC, @DATA, $DATA);
- if (-e $FILE)
- {
- open (FILE, "$FILE" );
- foreach $LIGNE (<FILE> )
- {
- chomp $LIGNE;
- if ($LIGNE =~ /# Create and configure user/)
- {
- @DATA = split (/# Create and configure user /, $LIGNE);
- push(@PC,@DATA);
- }
- }
- }
- print ("@PC" );
|
Le résultat est alors :
Ce qui me gène dans ce résultat, c'est qu'entre chaque nom des PC, il y a un double espace !
Je n'arrive pas à savoir d'où il provient !
Ensuite, je pense que je n'aurai plus qu'a relire @PC, et extraire les données comme addr, dhcp, ... , ping-timeout.
Mais j'aimerai un avis avant de continuer, est-ce que je ne suis pas entrein de créer une usine à gaz ?