Что состоит в том, чтобы узнать самый легкий путь, в каком файле содержится слово?

Я сказал бы, что это - просто другая причина, за которой рабочие серверы не должны работать в полном одиночестве и всегда иметь или горячее / холодное резервное копирование или принимать участие в двух кластерах узла. В эти дни виртуализации у Вас могут легко быть физический основной сервер и виртуальный сервер, который является только копией медосмотра, делавшегося каждые X дни, готового вступить во владение.

Другой затем это не так полезный ответ, я сказал бы, что необходимо сбалансировать важность данных... Если это - просто кластерный узел, пропустите его. Если это - клиент не скопированный веб-сервер, можно хотеть запланировать заранее в следующий раз :-)

0
задан 5 July 2009 в 08:28
9 ответов

grep "tanguay.info"/etc/httpd/conf/lxadmin /*, пока файл не находится в подкаталоге.

14
ответ дан 4 December 2019 в 10:58

То, что Вы ищете, является опцией -H из grep который показывает имя файла соответствия вместе с соответствием. Можно также добавить -r искать каталог рекурсивно. Т.е.

$ grep -r -H "tanguay.info" /etc/httpd/conf/lxadmin/
3
ответ дан 4 December 2019 в 10:58

Если существуют подкаталоги, можно использовать

rgrep "tanguay.info" /etc/httpd/conf/lxadmin/

или

grep -r "tanguay.info" /etc/httpd/conf/lxadmin/

Править:

Можно также использовать ack, расширенный grep, записанный в жемчуге (никакой deps, требуемый на автономной версии). ack ищет рекурсивно через каталоги по умолчанию.

ack "tanguay.info" /etc/httpd/conf/lxadmin/

На Ubuntu можно найти его в ack-grep пакете.

14
ответ дан 4 December 2019 в 10:58
  • 1
    Если grep дадут больше чем один файл для поиска, или Вы используете рекурсивный поиск, то он распечатает название соответствия файлу в начале строки. –  David Pashley 5 July 2009 в 11:11
  • 2
    +1 для рекомендации Ack. В конце концов, it' s betterthangrep.com –  Telemachus 6 July 2009 в 00:34

найти

найти. | xargs grep 'представляют-sl в виде строки'

-s для сводки и не отобразит предупреждающие сообщения, такие как grep:./directory-name: каталог

-l для списка, таким образом, мы получаем просто имя файла и не все экземпляры соответствия, отображенного в результатах.

2
ответ дан 4 December 2019 в 10:58
  • 1
    - 1, В первую очередь, никогда не используйте, находят и xargs, не используя-print0 с находкой и-0 с xargs, или файлы с пробелами вызовут Вас проблемы. Во-вторых, you' ve просто повторно реализовал " grep-r" плохо. В-третьих,-s является " подавите ошибку messages" не " summary" –  David Pashley 5 July 2009 в 11:09
# cd /directory/of/files/
# grep -A 5 -B 5 'keywords' *

покажите 5 строк прежде и 3 строки после так, чтобы Вы видели контекст ключевых слов

имеет все значение в понимании, как ключевые слова используются в файле

2
ответ дан 4 December 2019 в 10:58

В системах окон:

type *.* | find "<string>"

Кавычки должны быть там, между прочим.

0
ответ дан 4 December 2019 в 10:58
grep -Rl "tanguay.info" /etc/httpd/conf/lxadmin/
1
ответ дан 4 December 2019 в 10:58

Можно использовать одинарную левую кавычку для нахождения только в файлах. ['-> ключ, оставленный ключу Номер 1 выше к клавише Tab]

grep-wn "tanguay.info" find /etc/httpd/conf/lxadmin/ -iname "*.conf"

Вышеупомянутый код будет сначала получать *.conf файлы и затем искать "tanguay.info" среди результата.

Работайте вышеупомянутая команда в суперпользователе входят в систему для предотвращения проблем разрешения.

0
ответ дан 4 December 2019 в 10:58

Солитон ниже очень похож на ответ Izzy выше, но предлагает немного больше гибкости. Я нахожу это очень полезным, когда я должен сделать немного больше, чем xargs позволит (особенно в более старых системах SunOS, где grep -r или rgrep не доступно),

find . -name "*.conf" -exec grep -l tanguay.info {} \;

Вполне просто Вы находите все *.conf файлы и выполняете grep на каждом результате, который найден. \; завершается - исполнительная часть команды.

0
ответ дан 4 December 2019 в 10:58

Теги

Похожие вопросы