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 в вашу команду даст вам только совпадения, но также будет подавлять количество копий совпадений для каждого файла.

  • Каково поведение отмененного процесса над SSH, записывающего stdout, когда сеанс SSH теряется?
  • Не удалось перенаправить stdout / stderr в файл журнала
  • Вывод скрипта python, выполняющегося как единица, не соответствует порядку, в то время как оболочки не отображаются
  • grep ключевое слово из вывода Mplayer и отправить остальное в файл
  • Почему `cat`ing файл в себя стирает его?
  • Pipe stdout to obexftp bluetooth transfer?
  • Ksh теряет данные после трубопровода 16K байт
  • Как я могу ограничить скорость вывода stdout?
  • Выход находится в консоли, но не является частью stdout или stderr
  • Как перенаправить stdout в файл и прочитать из того же файла одновременно с другой задачей?
  • Перенаправление стандартного вывода и стандартная ошибка для одного файла
  • Interesting Posts

    Как глобально включить все дополнения Gahto's bash сразу?

    Как создать функцию в zsh, которая вызывает существующую команду с тем же именем?

    Подключиться к Webdav (https) с помощью домена \ пользователя

    Будет ли очень большая запись / удаление влияет на производительность SSD?

    Загрузить / Скомпилировать локальную версию mysqldump

    Что случилось с командой exit на моем терминале?

    Присоединительные линии с использованием редактора Vim

    Как приоритет процесса в реальном времени установлен по умолчанию?

    Как я могу поделиться оболочкой с моим коллегой без использования VNC?

    tar игнорирует вариант «более новый»

    как написать команду dd для замены резервной копии корневого раздела?

    `find` return value: неправильная ли страница поиска?

    как запустить команду диалога с запросом

    SSMTP – может отправлять E-Mail через CLI. Но программы не могут отправлять уведомления

    Какова цель ssh-agent?

    Linux и Unix - лучшая ОС в мире.