grep, как подавить отображение несогласованного файла?

Я пытаюсь найти файлы, содержащие определенное слово, используя 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 , но это будет подавлять полный вывод, чего я не хочу.

Как мне это сделать?

3 Solutions collect form web for “grep, как подавить отображение несогласованного файла?”

Это поведение, проявляемое grep -c .

Вероятно, у вас есть файл, имя которого начинается с - и содержит символ c и вы используете GNU grep без установки переменной среды POSIXLY_CORRECT .

Использование:

 grep -- delete * 

или лучше:

 grep delete ./* 

-- отмечает конец опций, так что это имя файла не будет считаться опцией (с помощью POSIX grep, это было бы не так, поскольку аргумент delete без опции означал бы конец опций), но он не будет обращаться проблема файла, называемого - . grep delete ./* более надежный, но имеет недостаток вывода дополнительного ./ для сопоставления файлов (хотя это может считаться бонусом, поскольку это помогает идентифицировать имена файлов, содержащие символы новой строки).

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

Вам нужна информация о том, сколько совпадений есть в файле? Потому что вы можете пропустить с помощью -c который используется для подсчета количества совпадений в файле.

edit: И как чернокнижник сказал, что использование -I для подавления матчей в двоичных файлах также может быть хорошей идеей.

Добавить

 | grep -v ':0$' 

Не очень изящно, но я думаю, что это сработает.

Добавление -l в вашу команду даст вам только совпадения, но также будет подавлять количество копий совпадений для каждого файла.

  • Как эти параметры qemu для перенаправления stdout работают?
  • Перенаправление tr stdout в файл
  • как перенаправить вывод ssh в файл
  • Как дублировать STDOUT?
  • Как перенаправить ошибку в файл?
  • Могу ли я настроить оболочку для печати STDERR и STDOUT в разных цветах?
  • Сценарий оболочки не отображает последнюю строку stdout на экране без ввода пользователем
  • Как обмануть команду в мысли, что ее выход идет на терминал
  • Запись на stdout, кроме перенаправления вывода C
  • Добавление кода выхода в файл журнала
  • Перенаправить часть скрипта bash в файл для захвата set -x output
  • Linux и Unix - лучшая ОС в мире.