J'ai un tas de fichiers .html dans un répertoire. Je veux parcourir chaque fichier et faire correspondre un modèle (MD5). Tout cela est assez simple. Le problème est que je dois savoir dans quel fichier la correspondance a été trouvée.
cat *.html | grep 75447A831E943724DD2DE9959E72EE31
Renvoie uniquement le contenu de la page HTML où la correspondance est trouvée, mais il ne me dit pas le fichier dans lequel il a été trouvé. Comment puis-je obtenir grep pour me montrer le nom de fichier où ma correspondance est trouvée?
command-line
grep
Soit mon ami
la source
la source
Réponses:
la source
-H
n'est pas nécessaire.cat
.cat
signifie concaténer. Si vous concaténez tous les fichiers ensemble avant de les transmettregrep
, negrep
voyez qu'un seul gros fichier d'entrée standard et ne pouvez pas (à moins de faire de la divination) vous rendre des informations sur les fichiers uniques. Voir?. Cyrus, qu'en est-il d'expliquer cela dans la réponse?J'utilise celui-ci tout le temps pour rechercher des fichiers contenant une chaîne, RECURIVEMENT dans un répertoire (cela signifie, traversant n'importe quel sous-sous-dossier)
grep -Ril "yoursearchtermhere"
R
est de rechercher récursivement (en suivant les liens symboliques)i
est de le rendre insensible à la cassel
est juste de lister le nom des fichiers.donc répondre à votre question
grep -l '75447A831E943724DD2DE9959E72EE31' *.html
fera l'affaire mais vous pouvez juste fairegrep -Ril '75447A831E943724DD2DE9959E72EE31'
pour chercher cette chaîne, insensible à la casse, dans n'importe quel fichier dans n'importe quel sous-dossierla source
stdin
( grep: avertissement: recherche récursive de stdin , quelle que soit l'entrée récursive stdin :-). En d'autres termes:grep -Ril 'texttofind' *
grep -RiH 'pattern'
affiche le nom des fichiers et la ligne correspondanteVous pouvez essayer ceci
la source
Alternative à
Faire ci-dessus va rechercher récursivement dans le dossier et les sous-dossiers et imprimer le chemin du fichier ...
la source
La réponse publié par Cyrus est absolument propre et est la bonne façon TM de le faire avec
grep
si nous ne devons trouver des fichiers . Lorsque les noms de fichiers doivent effectuer une analyse ou des opérations supplémentaires sur les noms de fichiers correspondants, nous pouvons recourir à l'utilisation de lawhile
boucle avecif
instruction. Voici un exemple où la liste des noms de fichiers provient d'une structurefind
+ très couramment utiliséewhile
pour une analyse sécurisée des noms de fichiers.la source
grep
le--include
drapeau de.