Equivalent command to grep binary files
The command strings
will extract all ascii data from a file, if you then grep
its output, you can search for your data:
strings <filename> | grep "search text"
With GNU grep, you can use -a option to make it treats binary files as text files:
grep -ali -- string file
If your grep version does not support -a
, you can use ack instead. With ack 1.x, you need to include -a
option, with ack 2.x, you don't, since when searching include non-text file by default (only ignored non-text file when you did not specify any files).
Your question is about find binary files that contain a pattern (and we have already very good answers!). Complementary we may like to get the occurrences.
I often use
grep -aPo '.{0,20}pattern.{0,20}' binfile
to get a surrounding context of 20-char.