grep小技巧之匹配到二进制文件
我们在日常使用grep这个强大的命令行工具时有时候会碰到一个问题,就是grep在识别文件的时候在碰到 ‘\000 NUL’的时候会认为文件是二进制文件,就不进行识别了,碰到这种情况我们可以使用 grep -a
或者 grep --text
比如我们做个小实验1
2
3
4
$content = file_get_contents('input.txt');
$binary = "\0" . $content; // 添加 NUL 字符到开头
file_put_contents('output.bin', $binary);
然后我们就有了 output.bin
这个二进制文件
本身 input.txt
的内容也很简单1
212345
12345
我们尝试用 grep
查找其中的内容,
就会出现这个问题
当我们加上了 -a
或者 --text
就是指定 grep
需要在包含二进制文件格式中或者将文件当做是文本文件来识别匹配