|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() Inscription : juin 2003 Messages : 270 ![]() |
Bonjour,
je decouvre la commande grep qui permet de faire des recherches de fichiers en fonction de leur contenu. Mais la recherche ignore les fichiers pdf. Apres avoir un peu surfe, j'ai vu que l'utilisation de pdftotext pouvait resoudre le probleme. question: quel serait dans ce cas la syntaxe a utiliser ? par ex: liste des fichiers du rep qui contiennent la chaine 'aaaaaa' ou qqchose du style: N'y a t-il pas plus simple que de passer par pdftotext ? Ma distrib: Debian 3.1 (Sarge) |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 546 ![]() |
pdf est un format particulier qui est plus proche d'un langage que d'un bloc de donnée il contient des elements binaires et des elements textes à la fois.
le grepper est donc à priori une mauvaise idée...d'ou l'utilité de n'extraire que le bloc textuel avant de le grepper.... tu dois donc generer le fichier texte avant de le grepper à la main : Code :
si pdftotext à une option qui permet de l'afficher sans cree de fichier texte alors seulement tu peux le piper par un grep... |
||
|
|
00
|
|
|
#3 |
|
Membre actif
![]() Inscription : juin 2003 Messages : 270 ![]() |
Merci pour ta reponse.
Je comprends la "complexite" technique d'une recherche sur des fichiers pdf. Mais etant donne l'omnipresence de ce format, est-ce qu'il n'existe pas dans le monde Linux un outil qui permet de masquer cette complexite ? Et donc de pouvoir faire une recherche dans une arborescence sans se soucier de la particularite du format pdf ? En gros, qu'est ce qui permet de se rapprocher de l'ergonomie de la fonction de recherche de fichier de Windows XP (qui permet de lister les fichiers d'une arborescence qui contiennent le mot 'xxxx' , qu'ils soient pdf, doc, txt ou autre) ? Merci |
|
|
00
|
|
|
#4 | ||
|
Membre éprouvé
![]() Inscription : mars 2002 Messages : 401 ![]() |
Il y a un outil qui a été mis en place sur le projet Gnome qui va dans ce sens. Malheureusement je ne connais plus le nom, mais il faut chercher par là-bas !
Sinon dans le pire des cas, tu peux toujours piper pdftotext même s'il n'a pas d'option prévue pour : Code :
__________________
Mon wiki (on y parle Debian principalement) : http://www.tchetch.net/ |
||
|
|
00
|
|
|
#5 | |||
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 546 ![]() |
Citation:
tu ne fais qu'ajouter une couche supplémentaire et faire perdre du temps cpu et d'autres ressources au traitement par rapport à laisser fiinir pdftotext et grepper le fichier de sortie... en plus sur un fichier bien gras** ça pourrait s'averer plus long pour obtenir le résultat final par contre sur un petit fichier c'est négligeable. *et tu as bien raison **fichier de grande taille |
|||
|
|
00
|
|
|
#6 |
|
Membre éprouvé
![]() Inscription : mars 2002 Messages : 401 ![]() |
Ouais, mais c'est déjà mieux que rien. Avec un petit script pour enrober tout ça et le faire sur une arborescence complète et le tour est joué !
Sinon oui, il s'agit là bien d'un tube (pipe), mais un tube nommé. Les tubes se travail comme des fichiers. J'aurais pu faire : On gagne le temps consommé par 'cat' !
__________________
Mon wiki (on y parle Debian principalement) : http://www.tchetch.net/ |
|
|
00
|
|
|
#7 |
|
Membre éprouvé
![]() Inscription : mars 2002 Messages : 401 ![]() |
Et d'ailleur voilà un script fait vite en vitesse qui fera tout ça ... Améliorations ('s' pour 'beaucoup de') possibles !
Mais celui qui veut améliorer il le peut ...
__________________
Mon wiki (on y parle Debian principalement) : http://www.tchetch.net/ |
|
|
00
|
|
|
#8 |
|
Membre actif
![]() Inscription : juin 2003 Messages : 270 ![]() |
Excellent ! Etant donne que je debute, ca m'aurait pris trois jours de pondre ce code.
Parmi les ameliorations, comment faire pour que les noms de fichiers comportant un espace ne pose pas probleme ? En fait, les lignes 26 et 30 (if [ -d $file ]; then et if [ -f $file ]; then) renvoient une erreur si $file contient un espace. Merci ! |
|
|
00
|
|
|
#9 |
|
Membre éprouvé
![]() Inscription : mars 2002 Messages : 401 ![]() |
C'est juste ... J'avais pas pensé aux espaces ... Rajoute des " autour de $file
Merci
__________________
Mon wiki (on y parle Debian principalement) : http://www.tchetch.net/ |
|
|
00
|
|
|
#10 | ||
|
Membre actif
![]() Inscription : juin 2003 Messages : 270 ![]() |
Merci. Par contre, y'a encore une ligne ou ca passe pas, toujours pour les fichiers avec espace (la 1ere de la sequence suivante):
Code :
J'ai pas trouve de solution. Une idee ? Merci ! |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com