8

Я хотел бы найти весь сервер по содержанию. (текстовый файл)

Когда я пытаюсь grep -rl "текст здесь", он зависает.

Как бы вы это сделали?

И сколько времени это обычно занимает?

4 ответа4

16

Вам нужно указать файл при использовании команды grep . С помощью команды, которую вы используете, вы ищете в стандартном вводе ...

Попробуйте grep -r "test" directory .

7
find / -name "*.txt" -exec grep "text here" {} \; -print 2>/dev/null

Что можно объяснить по-человечески:

  1. находить
  2. начиная с /
  3. во всех файлах с именем * .txt (кавычки должны обходить интерпретацию оболочки)
  4. с полученными попаданиями выполните следующее
  5. grep "тест здесь"
  6. в файле {}
  7. конец exec (\;) завершился оператором
  8. распечатать файлы, которые соответствуют
  9. перенаправлять сообщения об ошибках в приемнике (так как вы можете не быть пользователем root, в противном случае просто sudo).
0

Вы забыли указать, какие файлы вы хотите искать,
убедитесь, что вы вошли в систему как root

cd /
grep -rl "text here" *  > /tmp/match.txt

это займет очень много времени, и вы можете собрать результаты позже, проверив /tmp/match.txt

0

Следующая команда ищет все файлы, заканчивающиеся на .txt в текущем рабочем каталоге и во всех подкаталогах:

find . -type f -name '*.txt' -exec grep -Hn "text here" {} \;

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