Organiser fichier sip.conf [Résolu/Fermé]

Signaler
-
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
-
Bonjour,

Je suis actuellement en projet informatique dans mon BTS et je souhaite créer une interface web de configuration pour astérisk (ajout/suppression d'utilisateur et affichage des utilisateurs déja existant). Ce que je souhaite donc est de récupérer le contenu du fichier sip.conf et en extraire le numéro, l'utilisateur et le context.

J'ai donc réussi à récupérer ces informations, ce que je veux voudrais c'est organiser le fichier (de sortie) pour que ça m'affiche quelque chose comme : utilisateur, numéro, context

mon fichier sip.conf

[general]
port=5060
 bindaddr=0.0.0.0
disallow=all
allow=alaw
allow=ulaw
language=fr
canreinvite=no
allowguest=yes

[102]
 type=friend
host=dynamic
port=5060
user=utilisateur1
context=interne
language=fr

[103]
 type=friend
host=dynamic
port=5060
user=utliisateur2
context=interne
language=fr


[104]
 type=friend
host=dynamic
port=5060
user=utliisateur3
context=interne
language=fr

[105]
 type=friend
host=dynamic
port=5060
user=utliisateur5
context=externe
language=fr


Mon fichier de sortie actuel (abonne.txt)

[102]
[103]
[104]
[105]
context=interne
context=interne
context=interne
context=externe




Merci d'avance

2 réponses

Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 092
Salut,

Une solution (un peu tirée par les cheveux) parmi d'autres…

En partant de ton fichier spip.conf :

$ sed -n '/\[[[:digit:]]\|user\|context/p' spip.conf | sed -n 's/[][]//g;h;n;s/.*=//;G;h;n;s/.*=//;H;g;s/\n/,/g;p'
utilisateur1,102,interne
utliisateur2,103,interne
utliisateur3,104,interne
utliisateur5,105,externe

Merci beaucoup pour ta réponse aussi rapide. c'est exactement ce que je voulais faire ^^
Messages postés
36299
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 092
De rien.

Tiens, une version plus optimisée :

#n

/\[[[:digit:]]/{
s/[][]//g
h
:z
n

/user=\|context=/! {
b z
}

/user=/{
s///
G
h
b z
}

/context=/{
s///
H
}

/^$\|$/{
g
s/\n/,/g
p
}
b
}


À mettre dans un fichier (script.sed) et à appeler comme ça :

 
sed -f script.sed spip.conf