Как подавить результаты сопоставления двоичных файлов в grep [закрыто]
215
При использовании grepв Linux результат часто содержит множество «совпадений двоичного файла XXX», которые меня не волнуют. Как подавить эту часть результатов или как исключить двоичные файлы в grep?
@skwllsp Но с параметром -l результаты не содержат совпавшей строки, только с совпавшим именем файла.
RandyTek
Есть опция для строк: grep -I -n -H
6
Это не по теме? Wow
CoffeeTableEspresso
Ответы:
302
Есть три варианта, которые вы можете использовать. -Iэто исключить двоичные файлы в grep. Другие для номеров строк и имен файлов.
grep -I -n -H
-I -- process a binary file as if it did not contain matching data;
-n -- prefix each line of output with the 1-based line number within its input file
-H -- print the file name for each match
Я бы использовал, -Irnгде rрасшифровывается, чтобы заглянуть внутрь всех папок. Hздесь чрезмерно
vladkras
@vladkras, «H здесь чрезмерно» - вы имеете в виду избыточность, то есть это уже значение по умолчанию?
cp.engr
Спасибо за разъяснение, что означают короткие варианты в вашем ответе. Есть так много кратких ответов на команды linux на SO, которые не дают объяснений, что меня раздражает.
Джрахали
1
@AaronFranke: -nфлаг указывает grep сообщать номера строк файлов, в которых найдено совпадение. «На основе 1» означает, что подсчет строк начинается с единицы, а не с нуля, как это часто делается в программировании. Итак, если первая строка вашего файла example.txtназывается Hello, world, вторая строка Hello cat, а третья строка cats are cool, то при поиске «cat» через grep -n cat example.txt, вы получите example.txt:2: Hello catи example.txt:3: cats are cool.
jvriesem
11
Это старый вопрос, и на него дан ответ, но я решил поставить опцию --binary-files = text для всех, кто хочет его использовать. Опция -I игнорирует двоичный файл, но если вы хотите, чтобы grep рассматривал двоичный файл как текстовый файл, используйте --binary-files = text следующим образом:
Ответы:
Есть три варианта, которые вы можете использовать.
-I
это исключить двоичные файлы в grep. Другие для номеров строк и имен файлов.Так что это может быть способ запустить grep:
источник
-Irn
гдеr
расшифровывается, чтобы заглянуть внутрь всех папок.H
здесь чрезмерно-n
флаг указывает grep сообщать номера строк файлов, в которых найдено совпадение. «На основе 1» означает, что подсчет строк начинается с единицы, а не с нуля, как это часто делается в программировании. Итак, если первая строка вашего файлаexample.txt
называетсяHello, world
, вторая строкаHello cat
, а третья строкаcats are cool
, то при поиске «cat» черезgrep -n cat example.txt
, вы получитеexample.txt:2: Hello cat
иexample.txt:3: cats are cool
.Это старый вопрос, и на него дан ответ, но я решил поставить опцию --binary-files = text для всех, кто хочет его использовать. Опция -I игнорирует двоичный файл, но если вы хотите, чтобы grep рассматривал двоичный файл как текстовый файл, используйте --binary-files = text следующим образом:
источник