Recherche outils pour chercher des chaines de caractères dans des fichiers

Je recherche un outil pour chercher des chaines de caractères dans des fichiers. Le but n’est pas de trouver les fichiers, mais les chaines elle même.
La finalité de la chose c’est (dans le cas présent) de rechercher des adresses e-mail qui seraient dans des fichiers aussi divers que variés (textes, tableur, mails) …

Il me faudrait ça soit sous linux, soit sous windows.

Merci =)

T’as un outil fournit avec windows XP qui s’appelle findstr. Si il est pas installe par defaut il te faut installer les Windows XP Support tools qui sont sur le CD de windows XP. C’est facile a faire.

Les references completes pour le truc en question:
http://www.microsoft.com/technet/treeview/…docs/ntcmds.asp

Il y en a PLEIN que pas grand monde connait

[quote]T’as un outil fournit avec windows XP qui s’appelle findstr. Si il est pas installe par defaut il te faut installer les Windows XP Support tools qui sont sur le CD de windows XP. C’est facile a faire.

Les references completes pour le truc en question:
http://www.microsoft.com/technet/treeview/…docs/ntcmds.asp

Il y en a PLEIN que pas grand monde connait [/quote]Ah, merci bien … je vais aller voir ça tout de suite. Par contre, avant, faut du coup que je récupère mes fichiers sous linux et que je passe tout ça sur ma partoche XP (mais j’ai ce qu’il faut)

Bon, finalement soit je suis polio (c’est très possible) soit ça fait pas ce que je veux car le résultat obtenu ne correspond pas à ce dont j’ai besoin.

D’autres propositions ?

Euh… je comprends pas ton pb… notepad ne suffit pas ? Ni UltraEdit (qui permet d’ouvrir plusieurs fichiers et de faire la recherche dans ces dits fichiers) ?? tu veux faire ta recherche comment ?

euh, sous linux avec une combi find/grep, ça marche pas ?
Tu veux chercher dans des binaires aussi ?
Ce message a été édité par xentyr le 29/09/2003

Alors, mon pb c’est de récupérer les adresses mails qui doivent être réparties dans environ 12Go de données (fichiers textes, tableurs et bien entendu les mails eux même) et récupérer ça dans un fichier texte (par exemple). Donc les ouvrir 1 par 1 c’est inenvisageable. ATTENTION : je veux pas récupérer le nom des fichiers ou se trouvent les chaines de caractères recherchées, mais récupérer ces chaines (donc, les adresses mails identifiées par un @.*).
 
Le truc de glop à priori ne marche pas comme je voudrais (ou j’arrive pas à bien m’en servir ) et mes connaissances en linux étant très limitées, ben j’avoue ne pas connaître un fonction qui ferait ça.

Vala en gros.

Edit : à priori le binaire est exclu par contre. C’est juste dans des fichiers data (textes, comptes mails, tableurs …)
Ce message a été édité par Electric_Boogie_Back le 29/09/2003

Sous Unix le petit outil (en ligne) strings fait ça sur n’importe quel type de fichier. L’environnement cygwin te permettra d’avoir cet outils sous Windows…

Ensuite avec un find + strings + grep ça roulera.

Tu peux aussi essayer un truc de ce style :

$ grep '[A-Za-z0-9-_.]*@[A-Za-z_0-9-]*.[A-Za-z]*' *|grep -v Binary >> reponse[/quote]que tu fous dans un script qui parcourt tous les répertoires.

Pour faire ce genre de boulot rien ne vaut un bon script perl

Pour te donner un début de piste :

#Recupere la liste des fichier qui se trouve dans un répertoire opendir(DIR, $srcdir) || die "can't opendir $srcdir: $!"; @File_List= readdir(DIR); #tu peut même faire un grep sur le readdir histoire de ne récuperer que certains fichier closedir DIR;

foreach $file (@File_List) {
open FILE, “$file” or die “open problem for $file : $@”;
  while( ) {
  chomp $;
  if( /^w+@w+/ ) {
  print FILE_MAIL "$

";
  }
 }
}


C’est fait à partir de plusieurs copier/coller d’un script que j’avais sous la main, donc ça ne marche pas direct, mais c’est un bon début pour commencer je pense.

[edit] ARF ! C’est quoi ces smilies qui se ramène dans le code …

Ce message a été édité par Clams le 29/09/2003

la fonction recherche de windows xp ne le fait pas ?
quand je fais un recherche, il y a cette option:
rechercher un mot ou une phrase dans le document
c’eqst pas ca ? ou ca marche pas ?

Y’a l’utilitaire TextPad (shareware) qui fait ça :

http://www.textpad.com/

Moi j’ai beaucoup ce soft, et je le trouve assez rapide, bien plus que la recherche dans les fichiers de mon Windows 2000, et en plus il accepte les expressions régulières.

Ouai non mais si tu y arrives pas c’est surement parceque les fichiers du type “tableur” et autre ils sont sauves en binaire et pas en texte en clair. Dans ce cas la recherche du type “search in file” de windows XP est faite pour avec chaque file type qui est capable de fournir une API pour la recherche, quel que soit le format du fichier…

Ou alors si c’est en texte en clair, findstr devrait y arriver sans probleme. Et si ca le formatte pas exactement comme tu veux tu prend notepad et tu ecrit un ptit prog en C# qui tu fait ca en 5 lignes. System.Text.RegularExpression c’est le namespace que tu veux
Ce message a été édité par GloP le 12/11/2003