Either of the following shell commands should work with grep 2.25: LC_ALL=C grep 31325 test grep -a 31325 test
In my grep 2.25 (compiled from original source), these two commands are not equivalent. (This is on 32-bit or 64-bit GNU/Linux, though I doubt the platform matters.) $ LC_ALL=C \grep x /bin/cat|head -1 Binary file /bin/cat matches $ $ LC_ALL=C \grep -a x /bin/cat|head -1 ^?ELF ... many binary bytes ... $ IMHO, it would be desirable if LC_ALL=C really did grep the file, just like -a. And, reading the NEWS file for 2.25, it seems that is what is intended. Maybe I'm missing something. Another (orthogonal) idea: provide a configure-time option to make the default be the equivalent of -a. I wouldn't argue that it should be the default (though I wouldn't argue against it either :), but such an option would make it easy for those of us who just want grep to be grep, and not be affected by the binary/text detection heuristics. -k