这些命令之间有什么区别?为什么第一个匹配,但是does单个文件的十六进制转储不返回任何内容?
$ hexdump -C DRAFT* FAIL* RCV* | grep "49 d0 38 ec 06 a1 c3"
0001f430 49 d0 38 ec 06 a1 c3 7a 10 39 9c 07 bd cd 66 10 |I.8....z.9....f.|
$ hexdump -C RCV* | grep "49 d0 38 ec 06 a1 c3"
$ hexdump -C DRAFT* | grep "49 d0 38 ec 06 a1 c3"
$ hexdump -C FAIL* | grep "49 d0 38 ec 06 a1 c3"
$ ls
DRAFT DRAFT.HDR DRAFTUSED FAILED FAILED.HDR FAILEDUSED RCVD RCVD.HDR RCVDUSED SENT SENT.HDR SENTUSED SMS.html这些文件来自我的Samsung Sync SGH-A707。我正在尝试解析这些sms文件,这样我就可以对我的文本消息进行纯文本备份。我想要的字符串是我根据http://www.dreamfabric.com/sms/hello.html编码的控制消息
发布于 2011-06-24 18:29:35
十六进制转储将连接文件,然后转换为十六进制。如果字符序列跨行边界拆分,那么它将与您的grep不匹配。我怀疑这在某些情况下会发生,但在其他情况下就不会发生。
您可以尝试将-n选项与较大的数字(大于您正在使用的文件)一起使用,以便将整个输出放在一行中。
https://stackoverflow.com/questions/6466492
复制相似问题