Discussion:
tri ou sélection spéciale
(trop ancien pour répondre)
siger
2017-01-01 20:52:41 UTC
Permalink
Bonjour,
j'ai un fichier qui semble recenser les info qui sont dans la fenêtre de
mon courrielleur : titre, expéditeur, date etc.

Les infos compréhensibles sont mêlées à d'autres infos.

Ce que je voudrais faire : extraire les adresses mél de manière
automatique. J'ai mis "XML" dans Notepad++, ça met des choses en couleur,
mais je ne vois pas comment ne sélectionner que ce qu'il y a dans la
couleur choisie.

Y a t-il une possibilité, avec un éditeur ou un traitement de texte ou
autre chose, avec les expressions régulières, ... ?

Le but est d'avoir ce qu'il y a après le @ afin de trier sur ça et
repérer les redondances afin d'affiner mes tris de spam, car mon
courrielleur ne me permet que de trier pas adresse mél complète.
Lucas Levrel
2017-01-02 11:47:11 UTC
Permalink
Post by siger
Ce que je voudrais faire : extraire les adresses mél de manière
automatique. J'ai mis "XML" dans Notepad++, ça met des choses en couleur,
mais je ne vois pas comment ne sélectionner que ce qu'il y a dans la
couleur choisie.
Y a t-il une possibilité, avec un éditeur ou un traitement de texte ou
autre chose, avec les expressions régulières, ... ?
Es-tu prêt à installer MinGW pour ça, si tu ne l'as pas déjà ? Parce que
ça devrait se faire assez facilement avec des outils en ligne de commande
tels que grep, sort, uniq...
Post by siger
repérer les redondances afin d'affiner mes tris de spam, car mon
courrielleur ne me permet que de trier pas adresse mél complète.
Tu devrais donner un bout de fichier typique et le résultat escompté.
--
LL
Ἕν οἶδα ὅτι οὐδὲν οἶδα (Σωκράτης)
siger
2017-01-02 12:29:35 UTC
Permalink
Post by Lucas Levrel
Post by siger
Ce que je voudrais faire : extraire les adresses mél de manière
automatique. J'ai mis "XML" dans Notepad++, ça met des choses en couleur,
mais je ne vois pas comment ne sélectionner que ce qu'il y a dans la
couleur choisie.
Y a t-il une possibilité, avec un éditeur ou un traitement de texte ou
autre chose, avec les expressions régulières, ... ?
Es-tu prêt à installer MinGW pour ça, si tu ne l'as pas déjà ? Parce que
ça devrait se faire assez facilement avec des outils en ligne de commande
tels que grep, sort, uniq...
(comme il se doit, j'ai oublié de dire que j'utilise XP)
Je ne connais pas, mais pourquoi pas ? J'en trouverai peut-être d'autres
usages.
Post by Lucas Levrel
Post by siger
repérer les redondances afin d'affiner mes tris de spam, car mon
courrielleur ne me permet que de trier pas adresse mél complète.
Tu devrais donner un bout de fichier typique et le résultat escompté.
Extrait du texte :
0cf6ce3157e8b001Sujet_spam_1 <***@spameur-1>
***@moi<***@www.blablabla.com>57e89bc557e89be257e8e74e1dc3012001030UTF-8;;0
1dc6cf6ce3957e8b001Sujet_spam_2 <***@spameur-2>
***@moi<***@blobloblo.com>57d38a0457d3c2ba57e8e7137d22012009030UTF-8;;0
9aebcf6ce3c57e8b001Sujet_spam_3 <***@spameur-3>
<***@moi><***@bliblibli.fr>57cff71b57d02d1c57e8e70b12b0b012009030UTF-8;;0

Je cherche à extraire les adresses mél. Je pourrai facilement supprimer
la mienne, puis utiliser l'@ comme séparateur pour faire un tableau des
autres adresses. C'est une méthode.

Le but est d'arriver à lister :
spameur-1
spameur-2
spameur-3
Benoit Izac
2017-01-02 12:57:52 UTC
Permalink
Bonjour,

Le 02/01/2017 à 13:29, siger a écrit dans le message
Post by siger
Post by Lucas Levrel
Post by siger
Ce que je voudrais faire : extraire les adresses mél de manière
automatique. J'ai mis "XML" dans Notepad++, ça met des choses en
couleur, mais je ne vois pas comment ne sélectionner que ce qu'il
y a dans la couleur choisie.
Y a t-il une possibilité, avec un éditeur ou un traitement de texte
ou autre chose, avec les expressions régulières, ... ?
Es-tu prêt à installer MinGW pour ça, si tu ne l'as pas déjà ? Parce
que ça devrait se faire assez facilement avec des outils en ligne de
commande tels que grep, sort, uniq...
(comme il se doit, j'ai oublié de dire que j'utilise XP)
Je ne connais pas, mais pourquoi pas ? J'en trouverai peut-être d'autres
usages.
Post by Lucas Levrel
Post by siger
repérer les redondances afin d'affiner mes tris de spam, car mon
courrielleur ne me permet que de trier pas adresse mél complète.
Tu devrais donner un bout de fichier typique et le résultat escompté.
Les différents champs ne sont pas clairement définis :

1. comment différencier la partie hexadécimale du sujet ? Dans ton
exemple, la partie hexadécimale n'a pas la même longueur entre les
trois lignes.
2. c'est « ***@moi » ou « <***@moi> » ?
3. y a-t-il des retours à la ligne ou est-ce coupé par ton logiciel de
news ?
Post by siger
Je cherche à extraire les adresses mél. Je pourrai facilement supprimer
autres adresses. C'est une méthode.
spameur-1
spameur-2
spameur-3
En considérant que l'adresse du spammeur est toujours la première entre
les « <> » et que tout est sur une seule ligne, c'est assez facile
à faire avec sed :

% sed -e 's/^[^<]*<[^@]*@\([^>]*\)>.*$/\1/' < input
spameur-1
spameur-2
spameur-3

Explications :

depuis le début de la ligne (^)
0 ou plusieurs caractères différents de « < » ([^<]*)
un « < » (<)
0 ou plusieurs caractères différents de « @ » ([^@]*)
un « @ » (@)
0 ou plusieurs caractères différents de « > » que l'on capture (\([^>]*\))
un « > » (>)
0 ou plusieurs caractères jusqu'à la fin de la ligne (.*$)
et finalement, on remplace tout cela par la capture (\1)


Pour trier, rajouter « | sort ». Pour supprimer les redondances,
rajouter (après le tri) « | uniq ». L'option « -c » d'uniq permet
d'avoir également un compteur pour chaque domaine.

sed -e 's/^[^<]*<[^@]*@\([^>]*\)>.*$/\1/' < input | sort | uniq -c

Sous Windows, j'ai plutôt tendance à installer Cygwin pour faire ce
genre de choses.
--
Benoit Izac
siger
2017-01-02 13:35:06 UTC
Permalink
Post by Benoit Izac
1. comment différencier la partie hexadécimale du sujet ? Dans ton
exemple, la partie hexadécimale n'a pas la même longueur entre les
trois lignes.
Pour copier ici, j'ai cru bon de virer des caractère style "carré", ça
explique peut-être ça. Dans NotePad++, ils sont affichas ainsi : SOH en
blanc dans un rectangle noir. Voilà sans modification, les 3 parties avant
le sujet :

0cf6ce3157e8b001
1dc6cf6ce3957e8b001
9aebcf6ce3c57e8b001

J'avais pensé à sélectionné en mode colonne pour effacer ça, mais ils
n'ont pas la même longueur. En fait je vois qu'il y a 5 ou 6 catégories
de même longueur. En triant par colonnes, j'arrive à les regrouper plus
ou moins.
Il y a les 2. il y a aussi d'autres formes. Mais c'est pas important, je ne
veux pas garder mon adresse.
Post by Benoit Izac
3. y a-t-il des retours à la ligne ou est-ce coupé par ton logiciel de
news ?
Pas de retour à la ligne. Si j'étends NotePad++ sur 2 écran, j'ai une
ligne par message.
Post by Benoit Izac
Post by siger
Je cherche à extraire les adresses mél. Je pourrai facilement supprimer
autres adresses. C'est une méthode.
spameur-1
spameur-2
spameur-3
En considérant que l'adresse du spammeur est toujours la première entre
les « <> » et que tout est sur une seule ligne, c'est assez facile
http://www.gnu.org/software/sed/sed.html
http://gnuwin32.sourceforge.net/packages/sed.htm
Ça a l'air intéressant :-)
Post by Benoit Izac
spameur-1
spameur-2
spameur-3
depuis le début de la ligne (^)
0 ou plusieurs caractères différents de « < » ([^<]*)
un « < » (<)
0 ou plusieurs caractères différents de « > » que l'on capture (\([^>]*\))
un « > » (>)
0 ou plusieurs caractères jusqu'à la fin de la ligne (.*$)
et finalement, on remplace tout cela par la capture (\1)
Pour trier, rajouter « | sort ». Pour supprimer les redondances,
rajouter (après le tri) « | uniq ». L'option « -c » d'uniq permet
d'avoir également un compteur pour chaque domaine.
Sous Windows, j'ai plutôt tendance à installer Cygwin pour faire ce
genre de choses.
Merci !
Je vais regarder ça
siger
2017-01-02 13:48:54 UTC
Permalink
Post by siger
Pour copier ici, j'ai cru bon de virer des caractère style "carré", ça
explique peut-être ça. Dans NotePad++, ils sont affichas ainsi : SOH en
blanc dans un rectangle noir. Voilà sans modification, les 3 parties avant le
0cf6ce3157e8b001
1dc6cf6ce3957e8b001
9aebcf6ce3c57e8b001
Tiens, dans la fenêtre de réponse de Nemo les caractères spéciaux
apparaissent, mais pas sur le message posté.
Et là ils réapparaissent dans cette réponse. je ne sais donc pas si tu
les vois. Je réécrit en mettant une étoile à la place :

0*cf6ce31*57e8b001*
1dc6*cf6ce39*57e8b001*
9aeb*cf6ce3c*57e8b001*
Benoit Izac
2017-01-02 15:53:30 UTC
Permalink
Bonjour,

Le 02/01/2017 à 14:48, siger a écrit dans le message
Post by siger
Post by siger
Pour copier ici, j'ai cru bon de virer des caractère style "carré",
SOH en blanc dans un rectangle noir. Voilà sans modification, les
0cf6ce3157e8b001
1dc6cf6ce3957e8b001
9aebcf6ce3c57e8b001
Tiens, dans la fenêtre de réponse de Nemo les caractères spéciaux
apparaissent, mais pas sur le message posté.
Et là ils réapparaissent dans cette réponse. je ne sais donc pas si tu
0*cf6ce31*57e8b001*
1dc6*cf6ce39*57e8b001*
9aeb*cf6ce3c*57e8b001*
Je vois des ^A (en un caractère) qui correspondent bien au SOH (\001).
--
Benoit Izac
Benoit Izac
2017-01-02 15:55:15 UTC
Permalink
Post by Benoit Izac
Post by siger
Post by siger
Pour copier ici, j'ai cru bon de virer des caractère style "carré",
SOH en blanc dans un rectangle noir. Voilà sans modification, les
0cf6ce3157e8b001
1dc6cf6ce3957e8b001
9aebcf6ce3c57e8b001
Tiens, dans la fenêtre de réponse de Nemo les caractères spéciaux
apparaissent, mais pas sur le message posté.
Et là ils réapparaissent dans cette réponse. je ne sais donc pas si tu
0*cf6ce31*57e8b001*
1dc6*cf6ce39*57e8b001*
9aeb*cf6ce3c*57e8b001*
Je vois des ^A (en un caractère) qui correspondent bien au SOH (\001).
Par contre mon gnus les a virés...
--
Benoit Izac
Lucas Levrel
2017-01-02 14:07:53 UTC
Permalink
Post by siger
Il y a les 2. il y a aussi d'autres formes. Mais c'est pas important, je ne
veux pas garder mon adresse.
Dans ce cas, tu peux compléter les commandes données par Benoît par un
« grep -v » qui va supprimer ces lignes (il y a sûrement moyen de faire
avec sed uniquement, mais ça me paraît plus simple et ça te fait découvrir
grep ;-) ) :

grep -v '***@moi' < input | sed -e 's/^[^<]*<[^@]*@\([^>]*\)>.*$/\1/' | sort | uniq -c

Évidemment ça suppose que les lignes des spams ne contiennent pas ***@moi.
--
LL
Ἕν οἶδα ὅτι οὐδὲν οἶδα (Σωκράτης)
siger
2017-01-02 14:08:00 UTC
Permalink
Post by Lucas Levrel
Post by siger
Il y a les 2. il y a aussi d'autres formes. Mais c'est pas important, je ne
veux pas garder mon adresse.
Dans ce cas, tu peux compléter les commandes données par Benoît par un
« grep -v » qui va supprimer ces lignes (il y a sûrement moyen de faire
avec sed uniquement, mais ça me paraît plus simple et ça te fait découvrir
Toutes les lignes le contiennent, c'est l'adresse du destinataire.
siger
2017-01-28 13:53:53 UTC
Permalink
J'ai finalement fait ainsi :

J'ouvre le fichier avec NotePad++
Je sélectionne tout - copier
J'ouvre LibreOffice Writer - coller
Je convertis le texte en tableau avec comme séparateur : @
et à la 2e colonne j'ai tout les "domaines" de la première adresse de
chaque ligne, c'est à dire des spameurs, que je n'ai plus qu'à trier par
ordre alphabétique.
Post by siger
Bonjour,
j'ai un fichier qui semble recenser les info qui sont dans la fenêtre de
mon courrielleur : titre, expéditeur, date etc.
Les infos compréhensibles sont mêlées à d'autres infos.
Ce que je voudrais faire : extraire les adresses mél de manière
automatique. J'ai mis "XML" dans Notepad++, ça met des choses en couleur,
mais je ne vois pas comment ne sélectionner que ce qu'il y a dans la couleur
choisie.
Y a t-il une possibilité, avec un éditeur ou un traitement de texte ou
autre chose, avec les expressions régulières, ... ?
repérer les redondances afin d'affiner mes tris de spam, car mon courrielleur
ne me permet que de trier pas adresse mél complète.
Continuer la lecture sur narkive:
Loading...