1 votes

grep pour un mot, mais mentionnez également un ou plusieurs autres mots qui devraient apparaître dans le fichier

Je recherche les occurrences du mot "image" dans un dossier contenant de nombreux fichiers et sous-dossiers.

Les commandes grep ordinaires (grep et 'git grep') renvoient plus de mille résultats. Comment puis-je ajouter quelque chose à la commande grep, pour lui dire ,

"Trouvez-moi les fichiers qui contiennent le 'mot', mais seulement si les mots 'journaliste' ou 'éditeur' sont mentionnés dans ce même fichier.

1voto

Austin Hemmelgarn Points 7834

Ce qui suit devrait fonctionner :

grep word `grep -E -l 'reporter|publisher'`

En grep dans les guillemets générera une liste de fichiers qui contiennent soit 'reporter' soit 'publisher' ( -l indique à grep de lister les fichiers qui correspondent au lieu de donner la sortie habituelle, -E est nécessaire pour assurer l'alternance | ), qui sont ensuite énumérés en tant qu'arguments de la fonction externe grep qui, à son tour, recherche le mot "word" (vous pouvez ajouter la commande -l à cela aussi si vous voulez juste une liste de fichiers qui correspondent). Notez que ce n'est pas aussi efficace que d'écrire les choses sous la forme d'une seule expression régulière (cela recherche plus de fois que nécessaire), mais c'est généralement plus facile à expliquer que de le faire sous la forme d'une seule regex.

0voto

Andy Lester Points 1173

Tout d'abord, établissez une liste des fichiers qui ont reporter|publisher puis utilisez cette liste comme source pour déterminer les fichiers que vous souhaitez rechercher. word .

Si vous utilisez ack vous pouvez le faire :

ack -l 'reporter|publisher' | ack -x word

où le -x indique à la seconde invocation de ack d'utiliser la liste des fichiers sur stdin comme liste de fichiers à rechercher.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X