1

У меня есть структура вложенных папок, содержащая множество папок и файлов.

Как искать в файлах шаблон, например "sampletext", но только если имя файла совпадает с шаблоном (например, поиск только в файлах с расширением .txt) и, наконец, имя содержащей папки должно совпадать с другим шаблоном? (например, "данные").

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

заранее спасибо

1 ответ1

2

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

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

/dev/null заставляет grep отображать имя файла, даже если он работает в каталоге, в котором есть только один файл .txt .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .