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.
J'ai beaucoup apprécié vos messages sur dssheep.blogspot.com. Merci d'avoir partagé. – shellter