У меня есть куча двоичных файлов, и я знаю, что внутри этих двоичных файлов есть строки, которые я хочу найти.
Я хочу сделать:
grep -lir "the string I am looking for"
и получить список всех двоичных файлов в определенном каталоге, которые содержат эту строку, но grep -lir
, очевидно, не работают с этими файлами.
Есть ли команда, которая может выполнять такой поиск с терминала?
ack
самоописание? (в руководстве) «ack 2.x будет искать в каждом обычном недвоичном файле, который явно не игнорируется [бла-бла]». Поэтому, похоже, что ack 2.x должен прекратить чтение файла на ранней стадии, если содержимое выглядит двоичный файл.ack grep /bin/grep
и вы получите результат. Я обновил свой ответ, чтобы избежать путаницы.Команда
strings
извлечет все данные ASCII из файла, если вы затем выводите данныеgrep
, вы можете искать ваши данные:источник
strings
, читайте здесь для получения более подробной информации.strings -f
было бы более целесообразным.Ваш вопрос о том, чтобы найти двоичные файлы, содержащие шаблон (и у нас уже есть очень хорошие ответы!). Дополнительно мы можем захотеть получить события.
Я часто использую
чтобы получить окружающий контекст из 20 символов.
источник