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


8

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

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

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

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

Ответы:


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 его).

он говорит "найти: пропущенный аргумент" 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


0

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.