如何grep文件中是否存在特定的十六进制字节?

时间:2014-05-16 12:59:16

标签: linux grep hex-editors

我的网络应用程序正在显示一些奇怪的输出(不应该存在的unicode字符等)。我能想到的最好的是,不知怎的,我在源代码中的某个地方引入了一个错误的字符,但我无法弄清楚在哪里。

我发现this answer表示我可以执行以下操作:

grep -obUaP "<\x-hex pattern>" .

当我将unicode char从浏览器中复制到我的Bless十六进制编辑器中时,它告诉我char的确切字节是:

  

15 03 01 EF BF BD 02 02

如何格式化<\xhex pattern>以匹配我需要的确切字节。我试过了:

grep -obUaP "<\x-15 03 01 EF BF BD 02 02>" .

但这并不奏效。想法?

1 个答案:

答案 0 :(得分:3)

再次检查帖子。 FrOsT不包括'&lt;'和'&gt;'在他实际的grep命令中。他只使用克拉来附上一个例子陈述。他的实际陈述如下:

"\x01\x02"

"<\x01\x02>"

我的计算机上有一个以源代码开头的C源文件:

#include <stdio.h>

当我跑步时

grep -obUaP '\x69\x6E\x63\x6C\x75\x64\x65' io.c

我得到了

1:include

也就是说,行号后面只有 匹配模式的字符串。

您可能想要运行

man grep

并找出所有这些选项的含义。