[recherche] un outil de recherche efficace

J’ai un problème avec un projet web, basé sur un cms open source que je ne citerai pas mais qui est une véritable usine à gaz, faisant constamment appelle à des tas et des tas de fichiers un peu partout: les fichiers xml des flux rss ne sont pas valides, parce qu’il les sort avec un saut de ligne avant la balise <?xml.

donc, je me dit qu’un des ouatmille fichiers du projet doit comprendre un saut de ligne avant la première balise “<?php" ou après la fermeture "?>”. Je cherche donc un logiciel qui me permette de parser tous les fichier d’un répertoire et de ses sous répertoires, pour trouver un saut de ligne précédent un <? ou suivant un ?>.
j’ai essayé quelques éditeurs de textes et autres outils de recherches que je connais un peu, et malheureusement les seuls auxquels j’ai pu faire comprendre que la chaine que je voulais chercher comprend un retour chariot ne pouvaient le faire que sur un seul fichier ouvert et refusaient obstinément d’effectuer la recherche sur tout un répertoire.

Bref, quelqu’un connait-il la perle rare qui m’évitera de devoir inspecter un à un quelques centaines de fichiers?

perso avec ultraedit j’y arrive.
Suffit de selectionner un retour chariot et ce que tu veux.
Cela apparait comme un caractere bizarre et ta chaine.

Sinon en gros vite fait (python inside)
edit regexp corrigé avec : http://regexpal.com/

import os liste = os.listdir('c:/repertoire') for fichiers in liste : if os.path.isfile(fichiers): fichier=open(fichiers, "r") contenu=fichier.read() #a verifier les regexp contenu = contenu.replace('\n<\?','<?') contenu = contenu.replace('\n\?>','?>')
La version recursive vite fait : (a tester aussi)

import os liste = os.listdir('c:/repertoire') for fichiers in liste : if os.path.isfile(fichiers): fichier=open(fichiers, "r") contenu=fichier.read() contenu = contenu.replace('\n<\?','<?') contenu = contenu.replace('\n\?>','?>') else: liste.append(os.listdir(fichiers))

Tiens, j’ai déjà fait la même chose avec sed, qui peut faire du récursif (mais sous *nix, je sais pas si y’a une version windows)

Merci, je n’avais effectivement pas essayé ultraedit.

et j’avais oublié de préciser que c’était sous windows, sinon ç’aurait été trop facile ^^

un peu hors sujet, mais sous mac il y a bbedit

Ouais enfin sous Mac (OS X) y’a grep…

J’aime beaucoup Notepad++ concurrent gratuit d’Ultraedit et sinon sous Vista tu as la recherche intégrée.

+1 pour notepad++ qu’on peut en plus utiliser sur clef usb

Bussiere

J’utilise Agentransack qui est très puissant et en même temps accessible. Il a un assistant de recherche d’expression qui est bien utile quand on ne maitrise pas les expressions régulières.