1 votes

Recherche récursive du texte spécifique à l'intérieur des fichiers spécifiques mais uniquement dans des dossiers spécifiques

J'ai une structure de dossiers imbriqués contenant de nombreux dossiers et fichiers.

Comment puis-je rechercher à l'intérieur des fichiers un motif tel que "sampletext", mais seulement si le nom de fichier correspond à un motif (par exemple, ne rechercher qu'à l'intérieur des fichiers avec l'extension .txt) et enfin le nom du dossier contenant doit correspondre à un autre motif ? (par exemple "data").

Je suis sûr que je pourrais écrire un script shell pour le faire, mais je suis sûr qu'il existe des astuces en une ligne qui m'apprendront de nouvelles choses !

Merci d'avance

2voto

Scott Points 20468

Étant donné que vous dites avoir une structure de dossiers imbriqués, je crois que *data*/*txt ne fera pas ce dont vous avez besoin. Je suggère

find . -type d -name "*data*" -exec sh -c "grep sampletext /dev/null {}/*.txt" \;

Le /dev/null est là pour forcer grep à afficher le nom du fichier même lorsqu'il s'exécute sur un répertoire qui contient un seul fichier .txt.

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