Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/03/2016, à 14:53

Feral

Extraire emails de *.pdf ? [Resolu]

Bonjour,
Je désirerais extraire les emails contenu dans une grosse centaine de *.pdf classés par sous-répertoires.

Pour les textes la commande suivante fonctionne très bien en récursif:
grep -hrio "\b[a-z0-9.-]\+@[a-z0-9.-]\+\.[a-z]\{2,4\}\+\b" * | sort | uniq > email.txt

Donc je pensais pouvoir utiliser un peu la même chose avec pdfgrep puisque grep ne supporte pas les "pdf":
pdfgrep -hri "\b[a-z0-9.-]\+@[a-z0-9.-]\+\.[a-z]\{2,4\}\+\b" *.pdf | sort | uniq > pdfemail.txt

Mais cela me donne un fichier vide. :-(

Auriez-vous une méthode qui fonctionne pour moi SVP?
Merci!

Dernière modification par Feral (Le 29/03/2016, à 23:43)

Hors ligne

#2 Le 27/03/2016, à 16:15

credenhill

Re : Extraire emails de *.pdf ? [Resolu]

hello
essayer

find . -name "*.pdf" -exec cat {} \; | strings | grep -io "\b[a-z0-9.-]\+@[a-z0-9.-]\+\.[a-z]\{2,4\}\+\b" * | sort | uniq > email.txt

Hors ligne

#3 Le 28/03/2016, à 06:26

Feral

Re : Extraire emails de *.pdf ? [Resolu]

Merci mais cela ne fonctione pas. :-(
Ils scan tous les fichiers txt du répertoire et compile les emails.

Si je le fais tourner dans un rep avec test.pdf seulement, il me donne:

find: `cat' terminated by signal 13

Dernière modification par Feral (Le 28/03/2016, à 06:28)

Hors ligne

#4 Le 28/03/2016, à 08:50

serged

Re : Extraire emails de *.pdf ? [Resolu]

Plutôt que cat utilise less.

Ainsi :

less toto.pdf

t'affiche le fichier toto.pdf de manière plus ou moins formatée. Avec un | derrière, il se comportera comme un filtre.
Essaye :

find . -name "*.pdf" -exec less {} \; | strings | grep -io "\b[a-z0-9.-]\+@[a-z0-9.-]\+\.[a-z]\{2,4\}\+\b" * | sort | uniq > email.txt

(pas vérifié le reste du code)


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#5 Le 28/03/2016, à 09:25

credenhill

Re : Extraire emails de *.pdf ? [Resolu]

remplacer cat par less ... big_smile
si les fichiers n'ont pas d'espace dans les noms, essayer

$ strings $(find . -type f -name "*.pdf") | grep -io "\b[a-z0-9.-]\+@[a-z0-9.-]\+\.[a-z]\{2,4\}\+\b" 

Hors ligne

#6 Le 28/03/2016, à 10:12

LeoMajor

Re : Extraire emails de *.pdf ? [Resolu]

bonjour,
il y a pdftotext

Hors ligne

#7 Le 28/03/2016, à 11:08

credenhill

Re : Extraire emails de *.pdf ? [Resolu]

mieux que strings, effectivement

edit; donc, essayer

find . -type f -name "*.pdf" -exec pdftotext {} - 2>/dev/null \; | grep -io "\b[a-z0-9.-]\+@[a-z0-9.-]\+\.[a-z]\{2,4\}\+\b"

Dernière modification par credenhill (Le 28/03/2016, à 16:43)

Hors ligne

#8 Le 29/03/2016, à 23:43

Feral

Re : Extraire emails de *.pdf ? [Resolu]

Wahoo...
Merci à tous ça marche bien on dirait, en récurssif et avec des noms avec espace.

find . -type f -name "*.pdf" -exec pdftotext {} - 2>/dev/null \; | grep -io "\b[a-z0-9.-]\+@[a-z0-9.-]\+\.[a-z]\{2,4\}\+\b" | uniq | sort > pdfemail.txt

Parfait! Super!!!
Merci!

Hors ligne

#9 Le 29/03/2016, à 23:54

Feral

Re : Extraire emails de *.pdf ? [Resolu]

Bon ça "uniq" pas et ça "sort" pas mais avec grep derrier ça passe tout seul.

grep -hrio "\b[a-z0-9.-]\+@[a-z0-9.-]\+\.[a-z]\{2,4\}\+\b" * | sort | uniq > email.txt

Merci à tous les 3!

Hors ligne