2011-04-24 2 views
0

Bonjour Je cherche un script ou un programme qui utilise des mots-clés ou la recherche de modèle dans les fichiers ex. php, html, etc et montrer où est ce fichierJe cherche un outil pour rechercher du texte dans les fichiers sur la ligne de commande

J'utilise la commande cat/home/* | grep « mot-clé » mais j'ai trop de dossiers et fichiers et cette commande provoque grand temps de fonctionnement:/

J'ai besoin ce script pour trouver de faux sites Web (paypal, ebay, etc.)

Répondre

1
find /home -exec grep -s "keyword" {} \; -print 
+0

J'ai beaucoup apprécié vos messages sur dssheep.blogspot.com. Merci d'avoir partagé. – shellter

1

Vous n » Je ne sais pas vraiment quel OS (et shell) vous utilisez. Vous pourriez vouloir retag votre question pour nous aider. Puisque vous parlez cat | ..., je suppose que vous utilisez une variante Unix/Linux, donc voici quelques pointeurs pour regarder les fichiers. (La solution de bmargulies est bonne aussi).

Je suis à la recherche un script ou un programme qui utilisent des mots-clés ou la recherche de modèle dans les fichiers

grep est le programme de base pour les fichiers de recherche des chaînes de texte. Son utilisation est

grep [-options] 'search target' file1 file2 .... filen 

(Notez que « cible de recherche » contient un espace, si vous n'entourez pas d'espaces dans votre searchTarget avec des guillemets doubles ou simples, vous aurez une petite erreur de débogage.)

(Notez également que 'search target' peut utiliser un large éventail de caractères génériques, tels que.,?, +, , ., et beaucoup d'autres, cela dépasse le cadre de votre question). ... de toute façon ...

Comme je suppose que vous avez découvert, vous pouvez seulement entasser autant de fichiers à la fois dans la ligne de commande, même si vous utilisez une extension de nom de fichier générique. Unix/Linux ont presque toujours un utiltiyt qui peut aider,

startDir=/home 
find ${startDir} -print | xargs grep -l 'Search Target' 

Ce, comme une seule personne se fera un plaisir de vous rappeler, il faudra d'autres améliorations si vos noms de fichiers contiennent des caractères blancs ou des sauts de ligne.


Les options disponibles pour grep peuvent varier énormément en fonction du système d'exploitation que vous utilisez. Si vous êtes chanceux, vous tapez ce qui suit pour obtenir la page de manuel pour votre grep local.

man grep 

Si vous ne disposez pas de votre mise en page de mémoire tampon pour une grande taille, vous pourriez avoir besoin de faire

man grep | page 

afin que vous puissiez voir le haut du « document ». Appuyez sur n'importe quelle touche pour passer à la page suivante et lorsque vous êtes à la fin du document, la dernière pression sur la touche vous ramène à l'invite de commande.

Certaines options que la plupart des greps ont qui pourraient être utiles pour vous

-i (ignore case) 
-l (list filenames only (where txt is found) 

Il y a aussi fgrep, qui est habituellement Interpretation d'signifier grep « fichier » becuase vous pouvez lui donner un fichier de cibles de recherche pour rechercher, et est utilisé comme

fgrep [-other_options] -f srchTargetsFile file1 file2 ... filen 

J'ai besoin ce script pour trouver de faux sites Web (paypal, eb ay, etc.)

solution finale

vous pouvez faire un srchFile comme

paypal.fake.com ebay.fake.com etc.fake.com

et puis combiné avec ci-dessus, exécutez les opérations suivantes:

startDir=/home 
find ${startDir} -print | xargs fgrep -il -f srchFile 

Certains greps nécessitent que le -fsrchFile soit exécuté ensemble.

Maintenant vous trouvez tous les fichiers commençant par/home, recherchant avec fgrep pour paypay, ebay, etc dans tous les fichiers. Le -l dit qu'il imprimera UNIQUEMENT le nom de fichier où une correspondance est trouvée. Vous pouvez supprimer le -l et ensuite vous verrez la sortie de ce qui est trouvé, ajouté au nom du fichier.

IHTH.

Questions connexes