176 votes

bash script - recherche un fichier contenant du texte

En bash, je veux renvoyer le nom du fichier (et le chemin d'accès au fichier) pour chaque fichier de type .php|.html|.js contenant la chaîne insensible à la casse "document.cookie" | "setcookie"

Comment je ferais ça?

242voto

bear24rw Points 1026
 egrep -ir --include=*.{php,html,js} "(document.cookie|setcookie)" .
 

Si vous voulez juste les noms de fichiers, ajoutez l’indicateur l (L minuscule):

 egrep -lir --include=*.{php,html,js} "(document.cookie|setcookie)" .
 

66voto

Raoul Points 2624

Essayez quelque chose comme grep -r -n -i --include="*.html *.php *.js" searchstrinhere .

l'-je fait cas insensitlve

le "." à la fin signifie que vous souhaitez démarrer à partir de votre répertoire courant, cela pourrait être remplacé par n'importe quel répertoire.

l'option "-r" signifie faire cela de façon récursive, à droite en bas de l'arborescence de répertoires

le "-n" imprime le numéro de la ligne pour les matchs.

le "--include" vous permet d'ajouter des noms de fichiers, les extensions. Les caractères génériques accepté

Pour plus d'infos, voir: http://www.gnu.org/software/grep/

15voto

Michael Berkowski Points 137903

find eux et grep pour la chaîne:

Ceci trouvera tous les fichiers de vos 3 types dans / starting / path et grep pour l'expression régulière '(document\.cookie|setcookie)' . Diviser sur 2 lignes avec la barre oblique inverse juste pour la lisibilité ...

 find /starting/path -type f -name "*.php" -o -name "*.html" -o -name "*.js" | \
 xargs egrep -i '(document\.cookie|setcookie)'
 

11voto

Fredrik Pihl Points 20944

Cela semble être un travail parfait pour grep ou peut-être ack

Ou cette magnifique construction:

 find . -type f \( -name *.php -o -name *.html -o -name *.js \) -exec grep "document.cookie\|setcookie" /dev/null {} \;
 

4voto

nos Points 102226
find . -type f -name '*php' -o -name '*js' -o -name '*html' |\
xargs grep -liE 'document\.cookie|setcookie'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X