Использование find и grep в командной строке linux для поиска файлов с определенным пользователем и текстовым содержимым? - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь найти файл, принадлежащий конкретному пользователю, который также содержит определенную строку текста.Например, я хочу найти файл, принадлежащий пользователю root и содержащий текст «hello there».

Я знаю, что могу искать текст в файлах, используя grep, например:

grep -irl "hello there" /directory1

И я знаю, что могу искать файлы, принадлежащие пользователю с определенными расширениями:

find -user root -name "*.txt"

Можно ли объединить эти две команды?

1 Ответ

0 голосов
/ 28 сентября 2018

Вызовите grep один раз со всеми соответствующими файлами:

find -user root -name "*.txt" -exec grep -il "hello there" {} +

Или вызовите grep -q один раз для каждого файла и -print файлов, которые соответствуют.

find -user root -name "*.txt" -exec grep -iq "hello there" {} \; -print

(-exec может использоваться в качестве теста точно так же, как -user или -name. Если команда выполнена успешно, тест -exec проходит и вызывается -print.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...