Script shell extraction de texte precis
Résolu/Fermé
A voir également:
- Script shell extraction de texte precis
- Script vidéo youtube - Guide
- Excel cellule couleur si condition texte - Guide
- Transcription audio en texte word gratuit - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Convertisseur récupération de texte - Guide
5 réponses
en entrée:
[...]
11:23:18,969 | DEBUG | pool-component.servicemix-file/ORGAN
11:23:18,970 | DEBUG | pool-component.servicemix-file/OPX2
11:23:18,971 | DEBUG | pool-component.servicemix-file/ORGAN2
11:23:18,972 | DEBUG | pool-component.servicemix-file/OPX23
[...]
<user_description>
<departmentNumber>DGA/DQP/CTSI/SDCIS/Site-SQ</departmentNumber>
<departmentNumberOpe>DGA/DQP/SQ/AG/EI:100</departmentNumberOpe>
<description>Technicien support informatique:40</description>
<descriptionMetier>Informatique:100</descriptionMetier>
<descriptionPole/>
<descriptionPoste>Technicien d'exploitation et soutien informatique</descriptionPoste>
<employeeType>Fonctionnaire</employeeType>
<facsimileTelephoneNumber>+33 5 62 21 04 36</facsimileTelephoneNumber>
<givenName>Josian Guy</givenName>
[...]
11:24:19,949 | DEBUG | pool-component.servicemix-file/ORGAN
11:24:19,950 | DEBUG | pool-component.servicemix-file/OPX2
11:24:19,951 | DEBUG | pool-component.servicemix-file/ORGAN2
11:24:19,952 | DEBUG | pool-component.servicemix-file/OPX23
[...]
<user_description>
<departmentNumber>DGA/DQP/CTSI/SDCIS/Site-SQ</departmentNumber>
<departmentNumberOpe>DGA/DQP/SQ/AG/EI:100</departmentNumberOpe>
<description>Technicien support informatique:40</description>
<descriptionMetier>Informatique:100</descriptionMetier>
<descriptionPole/>
<descriptionPoste>Technicien d'exploitation et soutien informatique</descriptionPoste>
<employeeType>Libéral</employeeType>
<facsimileTelephoneNumber>+33 5 62 21 04 36</facsimileTelephoneNumber>
<givenName>Josian Guy</givenName>
[...]
11:24:19,949 | DEBUG | pool-component.servicemix-file/ORGAN
11:24:19,950 | DEBUG | pool-component.servicemix-file/OPX2
11:24:19,951 | DEBUG | pool-component.servicemix-file/ORGAN2
11:24:19,952 | DEBUG | pool-component.servicemix-file/OPX23
[...]
si je rentre en paramètre "fonctionnaire" je voudrais en fichier sortie:
[...]
<user_description>
<departmentNumber>DGA/DQP/CTSI/SDCIS/Site-SQ</departmentNumber>
<departmentNumberOpe>DGA/DQP/SQ/AG/EI:100</departmentNumberOpe>
<description>Technicien support informatique:40</description>
<descriptionMetier>Informatique:100</descriptionMetier>
<descriptionPole/>
<descriptionPoste>Technicien d'exploitation et soutien informatique</descriptionPoste>
<employeeType>Fonctionnaire</employeeType>
<facsimileTelephoneNumber>+33 5 62 21 04 36</facsimileTelephoneNumber>
<givenName>Josian Guy</givenName>
[...]
et si je rentre ne parametre "libéral" je voudrais en fichier sortie:
[...]
<user_description>
<departmentNumber>DGA/DQP/CTSI/SDCIS/Site-SQ</departmentNumber>
<departmentNumberOpe>DGA/DQP/SQ/AG/EI:100</departmentNumberOpe>
<description>Technicien support informatique:40</description>
<descriptionMetier>Informatique:100</descriptionMetier>
<descriptionPole/>
<descriptionPoste>Technicien d'exploitation et soutien informatique</descriptionPoste>
<employeeType>Libéral</employeeType>
<facsimileTelephoneNumber>+33 5 62 21 04 36</facsimileTelephoneNumber>
<givenName>Josian Guy</givenName>
[...]
Le but ultime étant de rendre plus lisible et compréhensible un fichier de LOG très lourd en filtrant les passage interessant pour l'utilisateur.
[...]
11:23:18,969 | DEBUG | pool-component.servicemix-file/ORGAN
11:23:18,970 | DEBUG | pool-component.servicemix-file/OPX2
11:23:18,971 | DEBUG | pool-component.servicemix-file/ORGAN2
11:23:18,972 | DEBUG | pool-component.servicemix-file/OPX23
[...]
<user_description>
<departmentNumber>DGA/DQP/CTSI/SDCIS/Site-SQ</departmentNumber>
<departmentNumberOpe>DGA/DQP/SQ/AG/EI:100</departmentNumberOpe>
<description>Technicien support informatique:40</description>
<descriptionMetier>Informatique:100</descriptionMetier>
<descriptionPole/>
<descriptionPoste>Technicien d'exploitation et soutien informatique</descriptionPoste>
<employeeType>Fonctionnaire</employeeType>
<facsimileTelephoneNumber>+33 5 62 21 04 36</facsimileTelephoneNumber>
<givenName>Josian Guy</givenName>
[...]
11:24:19,949 | DEBUG | pool-component.servicemix-file/ORGAN
11:24:19,950 | DEBUG | pool-component.servicemix-file/OPX2
11:24:19,951 | DEBUG | pool-component.servicemix-file/ORGAN2
11:24:19,952 | DEBUG | pool-component.servicemix-file/OPX23
[...]
<user_description>
<departmentNumber>DGA/DQP/CTSI/SDCIS/Site-SQ</departmentNumber>
<departmentNumberOpe>DGA/DQP/SQ/AG/EI:100</departmentNumberOpe>
<description>Technicien support informatique:40</description>
<descriptionMetier>Informatique:100</descriptionMetier>
<descriptionPole/>
<descriptionPoste>Technicien d'exploitation et soutien informatique</descriptionPoste>
<employeeType>Libéral</employeeType>
<facsimileTelephoneNumber>+33 5 62 21 04 36</facsimileTelephoneNumber>
<givenName>Josian Guy</givenName>
[...]
11:24:19,949 | DEBUG | pool-component.servicemix-file/ORGAN
11:24:19,950 | DEBUG | pool-component.servicemix-file/OPX2
11:24:19,951 | DEBUG | pool-component.servicemix-file/ORGAN2
11:24:19,952 | DEBUG | pool-component.servicemix-file/OPX23
[...]
si je rentre en paramètre "fonctionnaire" je voudrais en fichier sortie:
[...]
<user_description>
<departmentNumber>DGA/DQP/CTSI/SDCIS/Site-SQ</departmentNumber>
<departmentNumberOpe>DGA/DQP/SQ/AG/EI:100</departmentNumberOpe>
<description>Technicien support informatique:40</description>
<descriptionMetier>Informatique:100</descriptionMetier>
<descriptionPole/>
<descriptionPoste>Technicien d'exploitation et soutien informatique</descriptionPoste>
<employeeType>Fonctionnaire</employeeType>
<facsimileTelephoneNumber>+33 5 62 21 04 36</facsimileTelephoneNumber>
<givenName>Josian Guy</givenName>
[...]
et si je rentre ne parametre "libéral" je voudrais en fichier sortie:
[...]
<user_description>
<departmentNumber>DGA/DQP/CTSI/SDCIS/Site-SQ</departmentNumber>
<departmentNumberOpe>DGA/DQP/SQ/AG/EI:100</departmentNumberOpe>
<description>Technicien support informatique:40</description>
<descriptionMetier>Informatique:100</descriptionMetier>
<descriptionPole/>
<descriptionPoste>Technicien d'exploitation et soutien informatique</descriptionPoste>
<employeeType>Libéral</employeeType>
<facsimileTelephoneNumber>+33 5 62 21 04 36</facsimileTelephoneNumber>
<givenName>Josian Guy</givenName>
[...]
Le but ultime étant de rendre plus lisible et compréhensible un fichier de LOG très lourd en filtrant les passage interessant pour l'utilisateur.
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
13 juin 2008 à 12:02
13 juin 2008 à 12:02
Salut,
Les motifs sont identiques ou différents à chaque fois ?
Les motifs sont identiques ou différents à chaque fois ?
Les motifs contiennent une même chaine de caractères uniques, les voici:
11:23:18,969 | DEBUG | pool-component.servicemix-file/ORGAN
11:23:18,970 | DEBUG | pool-component.servicemix-file/OPX2
11:23:18,971 | DEBUG | pool-component.servicemix-file/ORGAN2
11:23:18,972 | DEBUG | pool-component.servicemix-file/OPX23
11:23:18,969 | DEBUG | pool-component.servicemix-file/ORGAN
11:23:18,970 | DEBUG | pool-component.servicemix-file/OPX2
11:23:18,971 | DEBUG | pool-component.servicemix-file/ORGAN2
11:23:18,972 | DEBUG | pool-component.servicemix-file/OPX23
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
>
Lalex'
13 juin 2008 à 12:14
13 juin 2008 à 12:14
Euh... tu peux me mettre la totalité de ce que tu veux, motif + variables s'il te plaît, avec un exemple précis, c'est plus facile et ça permet de gagner en clarté et en temps ;-))
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
13 juin 2008 à 13:09
13 juin 2008 à 13:09
Si les logs sont toujours les mêmes, alors un simple "egrep" suffit :
egrep -B7 -A2 "(Fonctionnaire|Libéral)" fichier.log;-))
Merci pour ta proposition:
egrep -B7 -A2 "(Fonctionnaire|Libéral)"
que signifie les B7 et A2?
par contre les [...] que j'ai ajouté dans le fichier d'entrée signifie que le nombre de "motif" successifs et le nombre de lignes a extraire sont variables (simplement pour réduire la log énorme).
Les logs ne sont donc identiques:
Serait-il possible de détecter les partie de logs entre deux motif successifs qui contiennent les chaines voulues "(Fonctionnaire|Libéral)"?
J'espère vraiment me faire comprendre, désolé si c'est pas très clair...
Merci.
egrep -B7 -A2 "(Fonctionnaire|Libéral)"
que signifie les B7 et A2?
par contre les [...] que j'ai ajouté dans le fichier d'entrée signifie que le nombre de "motif" successifs et le nombre de lignes a extraire sont variables (simplement pour réduire la log énorme).
Les logs ne sont donc identiques:
Serait-il possible de détecter les partie de logs entre deux motif successifs qui contiennent les chaines voulues "(Fonctionnaire|Libéral)"?
J'espère vraiment me faire comprendre, désolé si c'est pas très clair...
Merci.
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
13 juin 2008 à 13:47
13 juin 2008 à 13:47
que signifie les B7 et A2?
B = Before donc les 7 lignes précédent le motif
A = After, les 2 lignes suivant le motif
Sinon, essaye ça :
B = Before donc les 7 lignes précédent le motif
A = After, les 2 lignes suivant le motif
Sinon, essaye ça :
sed -n '/OPX23/{:z;N;/ORGAN/!bz;{/Fonctionnaire\|Libéral/{s/.[^\n]*\n\(.*\)\n.*/\1/p}}}' fichier;-))
MERCI
ca marche du tonnerre ton expression!!
par contre, les "motifs" sont récursifs et ils bouclent tant qu'il ne se passe rien et par conséquent, le dernier motif qui apparait avant le texte a extraire n'est pas toujours le meme...
sed -n '/OPX23/{:z;N;/ORGAN/!bz;{/Fonctionnaire\|Libéral/{s/.[^\n]*\n\(.*\)\n.*/\1/p}}}' fichier.log
11:23:18,969 | DEBUG | pool-component.servicemix-file/ORGAN
11:23:18,970 | DEBUG | pool-component.servicemix-file/OPX2
11:23:18,971 | DEBUG | pool-component.servicemix-file/ORGAN2
11:23:18,972 | DEBUG | pool-component.servicemix-file/OPX23
11:23:18,969 | DEBUG | pool-component.servicemix-file/ORGAN
11:23:18,970 | DEBUG | pool-component.servicemix-file/OPX2
11:23:18,971 | DEBUG | pool-component.servicemix-file/ORGAN2
11:23:18,972 | DEBUG | pool-component.servicemix-file/OPX23
11:23:18,969 | DEBUG | pool-component.servicemix-file/ORGAN
11:23:18,970 | DEBUG | pool-component.servicemix-file/OPX2
11:23:18,971 | DEBUG | pool-component.servicemix-file/ORGAN2
[...]
C'est pour cela que je voulais chercher les "DEBUG | pool-component.servicemix-file" qui, eux sont toujours présnets
ca marche du tonnerre ton expression!!
par contre, les "motifs" sont récursifs et ils bouclent tant qu'il ne se passe rien et par conséquent, le dernier motif qui apparait avant le texte a extraire n'est pas toujours le meme...
sed -n '/OPX23/{:z;N;/ORGAN/!bz;{/Fonctionnaire\|Libéral/{s/.[^\n]*\n\(.*\)\n.*/\1/p}}}' fichier.log
11:23:18,969 | DEBUG | pool-component.servicemix-file/ORGAN
11:23:18,970 | DEBUG | pool-component.servicemix-file/OPX2
11:23:18,971 | DEBUG | pool-component.servicemix-file/ORGAN2
11:23:18,972 | DEBUG | pool-component.servicemix-file/OPX23
11:23:18,969 | DEBUG | pool-component.servicemix-file/ORGAN
11:23:18,970 | DEBUG | pool-component.servicemix-file/OPX2
11:23:18,971 | DEBUG | pool-component.servicemix-file/ORGAN2
11:23:18,972 | DEBUG | pool-component.servicemix-file/OPX23
11:23:18,969 | DEBUG | pool-component.servicemix-file/ORGAN
11:23:18,970 | DEBUG | pool-component.servicemix-file/OPX2
11:23:18,971 | DEBUG | pool-component.servicemix-file/ORGAN2
[...]
C'est pour cela que je voulais chercher les "DEBUG | pool-component.servicemix-file" qui, eux sont toujours présnets
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
>
Lalex'
13 juin 2008 à 14:38
13 juin 2008 à 14:38
Le problème justement c'est le fait qu'ils soient récurrents tes motifs et encore pire avec "DEBUG | pool-component.servicemix-file", impossible de cibler un endroit précis :-((
Lalex'
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
13 juin 2008 à 14:51
13 juin 2008 à 14:51
y-a t-il un moyen de tester tous les intervalles de texte entre les motifs récursifs et si ils contiennent la variable on les affiche sinon non?
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
13 juin 2008 à 14:56
13 juin 2008 à 14:56
Essaye ça :
sed -n '/DEBUG/!{:z;N;/DEBUG/! bz; /Libéral\|Fonctionnaire/{s/\(.*\)\n.*/\1/p}}';-))