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

相关文章

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Mysql常见的SQL语句格式及实用技巧

《Mysql常见的SQL语句格式及实用技巧》本文系统梳理MySQL常见SQL语句格式,涵盖数据库与表的创建、删除、修改、查询操作,以及记录增删改查和多表关联等高级查询,同时提供索引优化、事务处理、临时... 目录一、常用语法汇总二、示例1.数据库操作2.表操作3.记录操作 4.高级查询三、实用技巧一、常用语

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

SpringBoot读取ZooKeeper(ZK)属性的方法实现

《SpringBoot读取ZooKeeper(ZK)属性的方法实现》本文主要介绍了SpringBoot读取ZooKeeper(ZK)属性的方法实现,强调使用@ConfigurationProperti... 目录1. 在配置文件中定义 ZK 属性application.propertiesapplicati

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co

Python中文件读取操作漏洞深度解析与防护指南

《Python中文件读取操作漏洞深度解析与防护指南》在Web应用开发中,文件操作是最基础也最危险的功能之一,这篇文章将全面剖析Python环境中常见的文件读取漏洞类型,成因及防护方案,感兴趣的小伙伴可... 目录引言一、静态资源处理中的路径穿越漏洞1.1 典型漏洞场景1.2 os.path.join()的陷

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见