Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android cat命令正在添加额外字符_Android_Linux - Fatal编程技术网

Android cat命令正在添加额外字符

Android cat命令正在添加额外字符,android,linux,Android,Linux,我有一个奇怪的问题,我正在用cat读取二进制文件。管道输出正在添加额外的字符,特别是0D0D。所以我可以在二进制编辑器中读取一个文件,它看起来像这样 ...82 FF B3 C9 0A 97.... ...82 FF B3 C9 0D 0D 0A 97... 但是,当我将输出cat到文本文件时,它会神秘地添加0D0D,如下所示 ...82 FF B3 C9 0A 97.... ...82 FF B3 C9 0D 0D 0A 97... 我正在阅读android手机生成的btsno

我有一个奇怪的问题,我正在用cat读取二进制文件。管道输出正在添加额外的字符,特别是0D0D。所以我可以在二进制编辑器中读取一个文件,它看起来像这样

 ...82 FF B3 C9 0A 97....
 ...82 FF B3 C9 0D 0D 0A 97...
但是,当我将输出cat到文本文件时,它会神秘地添加0D0D,如下所示

 ...82 FF B3 C9 0A 97....
 ...82 FF B3 C9 0D 0D 0A 97...

我正在阅读android手机生成的btsnoop_hci.log文件。这些是正在讨论的实际人物。我知道一个事实,这是发生在一个字符串的中间组成一个蓝牙链接键,所以这些额外的字符绝对不应该被添加。是否有人知道发生了什么,以及cat为什么要添加额外的字符???

在换行字节之前插入了两个回车字节。这些字符在不同的组合中非常重要,可以作为各种操作系统的行终止符。Windows使用双字节终止符0D 0A,Unix和OS X仅使用0A,而原始MacOS仅使用0D

因此,它看起来像是在对二进制数据进行某种文本模式的处理,尽管我不能说为什么要进行这种特定的处理。我有点惊讶于你的说法,猫正在执行这样的咀嚼,但如果它真的是猫,而不是管道中的其他东西,那么你可能需要使用不同的工具。

猫没有添加任何字符。请尝试以下操作:

$ adb shell
android$ md5 yourfile
android$ cat yourfile > newfile
android$ md5 newfile
以下是我的设备的一个示例:

shell@hammerhead:/mnt/sdcard $ md5 /system/bin/sh
cf3301e2cf56e5edc88ee20e3899a31e  /system/bin/sh
shell@hammerhead:/mnt/sdcard $ cat /system/bin/sh > newfile
shell@hammerhead:/mnt/sdcard $ md5 newfile
cf3301e2cf56e5edc88ee20e3899a31e  newfile
shell@hammerhead:/mnt/sdcard $ 
您会注意到校验和是相同的。cat没有以任何方式修改该文件

现在让我们试试:

校验和是不同的


问题不在猫身上。删除此问题并询问有关adb的后续信息

如果你比较od-t x1文件和cat文件| cat | od-t x1,我相信你会发现没有cat在任何地方添加任何字符。包括复制的步骤.你是对的。如下所述,这是adb的问题,因此我需要使用另一种方法