Expression reguliere

Fermé
tchabat Messages postés 25 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 12 septembre 2008 - 9 sept. 2008 à 09:25
tchabat Messages postés 25 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 12 septembre 2008 - 12 sept. 2008 à 09:47
Bonjour, voici unexemple de texte
nom de l'utlisateur: toto domaine: village
je voudrais extraire le mot qui se trouve entre "nom de l'utilisateur" et "domaine"

11 réponses

vignemail1 Messages postés 1246 Date d'inscription vendredi 8 octobre 2004 Statut Contributeur Dernière intervention 13 septembre 2019 259
9 sept. 2008 à 09:38
tu veux l'extraire avec quel outil ? sed ? perl ? java ? autre(s) ? Car les expressions régulières, on en trouve dans pas mal d'outil.
0
mysql fera l'affaire mais si tu as la reponse dans un autre langage il n'ya pas de probleme je me battrais à faire une translation
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
10 sept. 2008 à 09:06
Salut,

Exemple avec sed :
[tmpfs]$ echo $var
nom de l'utlisateur: toto domaine: village

[tmpfs]$ echo $var | sed -n 's/[^:]*: \([^ ]*\).*/\1/p'
toto

[tmpfs]$
;-))
0
merci beaucoup pour ta participation mais je me suis mal exprimé je ne voudrais pas declarer voici un log par exemple qui se trouve dans le champ de la base de données:

security[failure] 529 AUTORITE NT\\SYSTEM Échec de l'ouverture de session : Raison : Nom d'utilisateur inconnu ou mot de passe incorrect Nom de l'utilisateur : Administrator Domaine : Type de session : 3 Processus d'ouv. de session : NtLmSsp Package d'authentification : NTLM Nom de station de travail : \\\\DSRVSUP003B05BA Nom de l'utilisateur appelant : - Domaine appelant : - ID de session de l'appelant : - ID de processus appelant : - Services en transit : - Adresse réseau source : 10.250.90.173 Port source : 0


je voudrais recuperer la chaine se trouvant entre Nom de l'utilisateur et Domaine et aussi recuperer l'adresse IP
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
10 sept. 2008 à 15:45
[tmpfs]$ cat fichier
security[failure] 529 AUTORITE NT\\SYSTEM Échec de l'ouverture de session : Raison : Nom d'utilisateur inconnu ou mot de passe incorrect Nom de l'utilisateur : Administrator Domaine : Type de session : 3 Processus d'ouv. de session : NtLmSsp Package d'authentification : NTLM Nom de station de travail : \\\\DSRVSUP003B05BA Nom de l'utilisateur appelant : - Domaine appelant : - ID de session de l'appelant : - ID de processus appelant : - Services en transit : - Adresse réseau source : 10.250.90.173 Port source : 0

[tmpfs]$ sed -n 's/.*utilisateur : \([^ ]*\).*réseau source : \([^ ]*\).*/\1 \2/p' fichier
Administrator 10.250.90.173

[tmpfs]$
;-))
0
tchabat Messages postés 25 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 12 septembre 2008 2
10 sept. 2008 à 19:07
merci jipicy je teste et je te fait un feedback
0
tchabat Messages postés 25 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 12 septembre 2008 2
11 sept. 2008 à 09:40
salut jipicy j'ai un souci avec ta commande je ne sais pas où je fait faute.
j'ai cree un fichier test.txt contenant les données du log j'ai fait un cat test.txt, puis la commande
sed -n 's/.*utilisateur : \([^ ]*\).*réseau source : \([^ ]*\).*/\1 \2/p' test.txt
mais j'ai aucun resultat. j'ai éffacé même le nom du fichier à la fin de la commande toujours rien bon je check encore
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
11 sept. 2008 à 12:56
Tu peux mettre ton fichier quelque part (cjoint par exemple) ou me l'envoyer si ça doit rester confidentiel (enfin si c'est possible et si tu le veux ou peux) ?
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
11 sept. 2008 à 13:01
Le soucis c'est qu'il est sous windows en fait non?
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897 > kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016
11 sept. 2008 à 13:05
Ben avec une version de sed pour Win à ce moment là, donc je ne vois même pas ce que ça pourrait changer...
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
11 sept. 2008 à 13:07
S'il en a installé une oui :-)
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897 > kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016
11 sept. 2008 à 13:11
Ben dans le cas contraire il aurait eu un message d'erreur, non ? (command not found)
0
vignemail1 Messages postés 1246 Date d'inscription vendredi 8 octobre 2004 Statut Contributeur Dernière intervention 13 septembre 2019 259
11 sept. 2008 à 10:04
Vu que c'est un log sous Windows, est-ce que tu lances la commande sed à partir de Windows ou Linux, car sed c'est une commande linux que tu peux trouver en téléchargement sur http://gnuwin32.sourceforge.net/packages/sed.htm
concernant la commande sed -n ....., elle semble bonne donc normalement tu devrait pouvoir avoir le bon résultat
0
tchabat Messages postés 25 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 12 septembre 2008 2
11 sept. 2008 à 14:13
salut les gars je travaille dans une société en qualité d'agent de sécurité informatique et utilisons l'outil syslog-ng pour la centralisation des logs et ces logs sont centralises dans un ubuntu server et les logs proviennent des serveurs windows et linux et le test est effectué est sur un serveur ubuntu. j'ai testé le 1er script que tu as envoyé et ça marche nickel excepté le second(il prend un temps fou et ne m'affiche rien).
pour resumer j'ai une table nommée Logs constituée comme suit:
-host pour nom des servers
-facility
-datetime
-priority
-program
-sequence
-msg pour message(correspondant au texte envoyé)
donc je genere un rapport comportant le nom du serveur , celui qui genere l'echec/succes de connexion et l'adresse ip utilise les 2 derniers elements se trouvent dans le champs msg
je teste le script en local, puis j'essaierais de l'adapter au regexp Mysql
merci de votre comprehension
0
vignemail1 Messages postés 1246 Date d'inscription vendredi 8 octobre 2004 Statut Contributeur Dernière intervention 13 septembre 2019 259
11 sept. 2008 à 18:20
Si c'est pour stocker dans MySQL, syslog-ng en version pro permet déjà de stocker dans une table MySQL, tout comme la version standard en utilisant un pipe, je l'ai déjà testé et cela marche. Pour créer le rapport alors, il suffit d'utiliser PHP ou autres qui consultent la base de données. La technique du pipe, http://doc.ubuntu-fr.org/syslog-ng
0
tchabat Messages postés 25 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 12 septembre 2008 2
12 sept. 2008 à 09:47
syslog-ng est dejà installer et parametrer ainsi que l'interface web je peux visualiser et je sors des rapports mais le pb est le champ message qui contient du texte avec des infos important pour le reporting tel ma demande ci-haut jipicy est sur la voie.
mysql utilise les regexp dont je ne suis pas un expert dessus et j'essaye de lire la doc por comprendre la signification de tout ces crochet, parenthese etc mais je bloque je sais pas où. je me bat
0