Рекурсивный текстовый поиск с grep и шаблонами файла

По моему опыту, существует две вещи, которые могли идти не так, как надо. Первое и наиболее распространенное - позволяется ли или удаленное завершение работы. В политике Локальной защиты (Запускаются-> Панель управления-> Средства администрирования-> политика Локальной защиты). Разверните Локальные политики и откройте Параметры безопасности. "Доступ к сети: Совместное использование и модель обеспечения безопасности для локальных учетных записей" должно быть установлено на Классика.

Поскольку в другом ответе было сказано, что название машины требуется, даже если Вы уже указали IP-адрес. Попытайтесь использовать что-то вроде этого:

rpcclient --user='Administrator' -I x.x.x.x --command='shutdown' ComputerName
46
задан 19 May 2009 в 16:31
7 ответов

Моя версия GNU Grep имеет переключатель для этого:

grep -R --include='*.txt' $Pattern

Описанный следующим образом:

--include=GLOB

Ищите только файлы, базовое имя которых соответствует ШАРИКУ (использующий подстановочный знак, соответствующий, как описано под - исключают).

61
ответ дан 28 November 2019 в 19:39

Если бы у Вас есть большое количество файлов, было бы полезно включить xargs в команду для предотвращения 'Списка аргументов слишком долго' ошибка.

find . -name '*.txt' -print | xargs grep <pattern>
19
ответ дан 28 November 2019 в 19:39
  • 1
    Если существуют пробелы на какое-либо из имен файла или каталога, используйте эту форму: найти. - имя ' *.txt'-print0 | xargs-0 grep < pattern> –  Jason Luther 19 May 2009 в 16:37
find . -name '*.txt' -type f -exec grep <pattern> {} \;
0
ответ дан 28 November 2019 в 19:39
  • 1
    Вы могли бы хотеть использовать " найти. - имя ' *.txt' - тип f - должностное лицо grep < pattern> {} + " вместо этого так, чтобы это скорее ведет себя подобное verision с от Mark Robinson - работы только с GNU находят к моему знанию –  serverhorror 10 June 2009 в 11:49

Ответ Mannis разветвил бы новый grep-процесс для каждого текстового файла. Если у Вас есть много текстовых файлов там, Вы могли бы рассмотреть захват каждого файла сначала и выбрать .txt-файлы, когда это сделано:

grep -r <pattern> * | grep \.txt:

Это более интенсивно диском, но могло бы быть быстрее так или иначе.

0
ответ дан 28 November 2019 в 19:39

Можно хотеть смотреть на ack по http://betterthangrep.com, который имеет средства для выбора файлов для поиска типом файла.

1
ответ дан 28 November 2019 в 19:39

вы можете использовать свой zsh параметр EXTENDED_GLOB ( docs )

grep <pattern> **/*.txt
2
ответ дан 28 November 2019 в 19:39

Сейчас 2019 год, и я никак не могу использовать grep для рекурсивного поиска по тексту.

ИМХО, сегодняшние ответы должны включать ripgrep :

rg <pattern> -ttxt
0
ответ дан 28 November 2019 в 19:39

Теги

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