perl读取二进制格式的bin文件

2024-06-16 08:58
文章标签 读取 格式 二进制 bin perl

本文主要是介绍perl读取二进制格式的bin文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • perl下读取二进制格式的bin文件步骤
  • 16进制数据的字节翻转处理

工程中,板级系统通过IDE工具,dump出的数据格式是二进制的bin文件。
在linux下,直接cat命令,是乱码。
此时,如果有需求对该文件下的数据进行脚本处理;比如perl。可以参考下述方法。

perl下读取二进制格式的bin文件步骤:

  1. open FILEHAND,"XXX.bin"
    就是perl的读取文件命令
  2. binmode(FILEHAND)
    二进制模式
  3. read(FILEHAND,my $buf,2048)
    read命令一定要在binmode命令之后。
    $buf是存储2048个bytes数据的变量。此时直接print $buf,仍然是乱码格式。
    2048bytes,一般由bin文件的大小决定(例如当前应用,推荐与IDE dump的数据大小是一致的;)。
  4. my $hex=unpack("H*",$buf)
    这一行,主要是把bin文件里的内容,转成16进制数据。
    H*的意义,H是16进制解包,*是对所有字符进行16进制解包。详情参考下述文档。
    此时print $buf就是可查看的了。

16进制数据的字节翻转处理

因为硬件相关的dump数据显示,一般都是字节翻转的。
所以,可以使用perl的正则表达式,把1个字即8个字节,按照字节翻转的原理,推断出期望的数据显示格式。
perl下的命令:

s/([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/$4$3$2$1\n/g;

参考文档:
Perl的Open函数 (包括binmode)- 三句对白 - 博客园
http://www.cnblogs.com/charlexu/archive/2013/01/30/2882911.html
Perl函数pack/unpack解释 - eros的linux平台技术资料库 - 博客频道 - CSDN.NET
http://blog.csdn.net/eroswang/article/details/2032564

这篇关于perl读取二进制格式的bin文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1066011

相关文章

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

基于Python实现读取嵌套压缩包下文件的方法

《基于Python实现读取嵌套压缩包下文件的方法》工作中遇到的问题,需要用Python实现嵌套压缩包下文件读取,本文给大家介绍了详细的解决方法,并有相关的代码示例供大家参考,需要的朋友可以参考下... 目录思路完整代码代码优化思路打开外层zip压缩包并遍历文件:使用with zipfile.ZipFil

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

python dict转换成json格式的实现

《pythondict转换成json格式的实现》本文主要介绍了pythondict转换成json格式的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 一开始你变成字典格式data = [ { 'a' : 1, 'b' : 2, 'c编程' : 3,

解决Java中基于GeoTools的Shapefile读取乱码的问题

《解决Java中基于GeoTools的Shapefile读取乱码的问题》本文主要讨论了在使用Java编程语言进行地理信息数据解析时遇到的Shapefile属性信息乱码问题,以及根据不同的编码设置进行属... 目录前言1、Shapefile属性字段编码的情况:一、Shp文件常见的字符集编码1、System编码

利用Python实现添加或读取Excel公式

《利用Python实现添加或读取Excel公式》Excel公式是数据处理的核心工具,从简单的加减运算到复杂的逻辑判断,掌握基础语法是高效工作的起点,下面我们就来看看如何使用Python进行Excel公... 目录python Excel 库安装Python 在 Excel 中添加公式/函数Python 读取

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使

Java中使用注解校验手机号格式的详细指南

《Java中使用注解校验手机号格式的详细指南》在现代的Web应用开发中,数据校验是一个非常重要的环节,本文将详细介绍如何在Java中使用注解对手机号格式进行校验,感兴趣的小伙伴可以了解下... 目录1. 引言2. 数据校验的重要性3. Java中的数据校验框架4. 使用注解校验手机号格式4.1 @NotBl

Python批量调整Word文档中的字体、段落间距及格式

《Python批量调整Word文档中的字体、段落间距及格式》这篇文章主要为大家详细介绍了如何使用Python的docx库来批量处理Word文档,包括设置首行缩进、字体、字号、行间距、段落对齐方式等,需... 目录关键代码一级标题设置  正文设置完整代码运行结果最近关于批处理格式的问题我查了很多资料,但是都没