Как искать по контенту в Ubuntu

8

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

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

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

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

webnat0
источник

Ответы:

16

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

Пытаться grep -r "test" directory,

ChrisJ
источник
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 его).
Alain Pannetier
источник
он говорит "найти: пропущенный аргумент" grep ""
webnat0
работает здесь как вы заменили «тест здесь»?
Alain Pannetier
ой. У меня был неправильный обратный слеш. Благодарю. :)
webnat0
1
@Daeyun: есть только один обратный слеш.
Dennis Williamson
1
@Dennis. Зависит от вашего родного языка. В Японии и Корее есть несколько наборов символов, в которых обратный слеш также отображается как знак иены или знак вонга (0x5c). Также, пожалуйста, посмотрите на u + 20E5. В прошлом было несколько эксплойтов в IIS, в которых вы могли исследовать весь диск (где корень IIS) ПК, просто смешивая реальный слэш и ложный (другой эквивалентный юникод, преобразованный вниз в плане ascii) слеш и, по крайней мере, один с использованием обратного наложения солидуса.
Alain Pannetier
0

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

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

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

ajreal
источник
0

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

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


источник