Bash 将表示十六进制值的ascii转换为二进制数据
我正在寻找一种将代表十六进制值的ascii数据转换为二进制文件的方法。 具体而言,通过将十六进制值转换为字符串,记录串行端口上与连接的def设备(在本例中为GPS接收器)的所有通信。 我要寻找的是一种将这些数据转换回二进制数据的方法。 基本上,我可以通过运行HxD编辑器并通过从日志中提取的字符串来完成这项工作。 我想做的是能够在命令行上这样做,而不需要手动将测试复制/粘贴到hex编辑器 行始终以wi B562开头,后跟值,例如06,在这种情况下,该值应导致输出(以字符串表示)为“µb” 例如,我正在编辑一个文件,其中包含我要转换的数据,以及HxD编辑器编写的结果文件。可以使用u.blox.com提供的名为u-center的工具打开并重放生成的文件。它显示正在记录的卫星信息。。。 输入文件 输出文件 谢谢你的支持。Bash 将表示十六进制值的ascii转换为二进制数据,bash,binary,hex,ascii,Bash,Binary,Hex,Ascii,我正在寻找一种将代表十六进制值的ascii数据转换为二进制文件的方法。 具体而言,通过将十六进制值转换为字符串,记录串行端口上与连接的def设备(在本例中为GPS接收器)的所有通信。 我要寻找的是一种将这些数据转换回二进制数据的方法。 基本上,我可以通过运行HxD编辑器并通过从日志中提取的字符串来完成这项工作。 我想做的是能够在命令行上这样做,而不需要手动将测试复制/粘贴到hex编辑器 行始终以wi B562开头,后跟值,例如06,在这种情况下,该值应导致输出(以字符串表示)为“µb” 例如,
-Wasili您可以使用以下方法将表示十六进制值的ASCII转换为二进制数据:
xxd -r -ps log01.ublox.tmp output.ubx
欢迎收看Stackoverflow。如果您给出输入文件的示例和预期输出的明确说明,您的问题将更容易理解和回答。例如,输入记录之间的分隔符是什么?新线?输出二进制值之间需要什么分隔符?新线?没有什么输入(输出)值的字节数?什么是持久性?等等。谢谢你的提示,我编辑了这个问题并添加了可用于此转换的共享文件。C可能会更好。我知道在C中这不是问题,但我也可以使用HxD来代替开始编码。为了能够使用命令行工具,我刚才问Linux发行版中的标准工具是否存在这种方式,或者cygwin中的标准工具是否存在这种方式:)@laiki好吧,答案是由我发布的,Grant善意地更正了我的英语;-)。顺便说一句,如果你觉得答案有帮助,请投赞成票并点击问题旁边的复选标记接受答案。蒂亚!