Рекурсивний пошук певного тексту в певних файлах, але тільки в певних папках


1

У мене є вкладена структура папок, що містить багато папок і файлів.

Як шукати у файлах шаблон, наприклад, "sampletext", але тільки якщо ім'я файлу збігається з шаблоном (наприклад, пошук тільки в файлах з розширенням .txt) і, нарешті, ім'я папки, що містить, має збігатися з іншим шаблоном? (наприклад, "дані").

Я впевнений, що я міг би написати сценарій оболонки, але я впевнений, що розумні однобічники існують, які навчать мене новим речам!

Спасибі заздалегідь

Відповіді:


2

Оскільки ви говорите, що у вас є структура вкладених папок, я вважаю *data*/*txt не робитиме те, що вам потрібно. Я пропоную

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

The /dev/null є силою grep щоб відобразити ім'я файлу, навіть якщо воно виконується в каталозі, який має лише одне .txt файл у ньому.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.