Я пытаюсь найти файлы, содержащие определенное слово, используя grep
. В каталоге много файлов (> 500)
Команда я бегу
$ grep 'delete' *
Вывод
validate_data_stage1:0
validate_data_stage2:0
validate_data_stage3:0
validate_data_stage4:0
validate_data_stage5:0
validate_input_stage1:0
validate_input_stage2:0
validate_input_stage3:0
validate_input_stage4:0
.... and hundred of such lines
Это файлы, которые не содержат данное совпадение. Я хочу, чтобы эти строки не отображались в stdout. Я знаю о -q
переключателе, но это подавило бы полный вывод, который я не хочу.
Как я могу это сделать?
grep 'delete' * -R
, но я не думаю, что -R
это вызывает какие-либо проблемы. И да, обычно он не печатает несоответствующие, но не уверен, что здесь происходит ...
grep -- 'delete' *
(добавил --
), и это сработало, как ожидалось. Удаление --
ведет к приведенному выше дисплею.
-ci
. Спасибо за решение проблемы. Вы можете опубликовать этот сценарий в качестве ответа.
grep
не следует распечатывать имена файлов несоответствующих файлов. На самом деле, похоже, чтоgrep
строка с контентом0
совпадает. Можете ли вы опубликовать точный шаблон поиска, который вы используете?