shell脚本读写二进制文件

在这里插入图片描述

文章目录

  • shell脚本读写二进制文件
  • 读取二进制文件
    • 使用`xxd`命令
    • 使用`od`命令
  • 写入二进制文件
    • 使用`echo`和`printf`
  • 读取和修改二进制文件
    • 使用`dd`命令
  • 组合使用工具

shell脚本读写二进制文件

在Shell脚本中处理二进制文件时,可以使用一些常用的命令和工具来读取和写入二进制数据。以下是一些示例:

读取二进制文件

可以使用xxdod等命令来读取二进制文件的内容并以可读的格式显示。

使用xxd命令

#!/bin/bash# 读取二进制文件并以十六进制显示
xxd binaryfile.bin

使用od命令

#!/bin/bash# 读取二进制文件并以八进制显示
od -t x1 binaryfile.bin

写入二进制文件

可以使用echo命令结合printf命令来写入二进制数据到文件。

使用echoprintf

#!/bin/bash# 写入二进制数据到文件
echo -n -e "\x42\x69\x6e\x61\x72\x79\x44\x61\x74\x61" > binaryfile.bin# 或者使用printf
printf "\x42\x69\x6e\x61\x72\x79\x44\x61\x74\x61" > binaryfile.bin

读取和修改二进制文件

可以使用dd命令来读取和修改二进制文件的特定部分。

使用dd命令

#!/bin/bash# 从偏移量为10的地方读取10字节并显示
dd if=binaryfile.bin bs=1 skip=10 count=10 | xxd# 在偏移量为10的地方写入10字节的二进制数据
echo -n -e "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09" | dd of=binaryfile.bin bs=1 seek=10 count=10 conv=notrunc

组合使用工具

可以组合使用上述工具来实现更复杂的操作。例如,读取文件中的部分数据,进行修改后再写回文件。

#!/bin/bash# 读取前20字节
data=$(dd if=binaryfile.bin bs=1 count=20 2>/dev/null | xxd -p)# 对数据进行修改(示例:添加一个字节)
modified_data="${data}42"# 将修改后的数据写回文件
echo -n "$modified_data" | xxd -r -p > binaryfile.bin

这些示例展示了如何在Shell脚本中读取和写入二进制文件的基本方法。根据具体需求,可以进一步调整和扩展这些脚本。


结束语
Flutter是一个由Google开发的开源UI工具包,它可以让您在不同平台上创建高质量、美观的应用程序,而无需编写大量平台特定的代码。我将学习和深入研究Flutter的方方面面。从基础知识到高级技巧,从UI设计到性能优化,欢饮关注一起讨论学习,共同进入Flutter的精彩世界!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/17131.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

短视频真人配音:成都科成博通文化传媒公司

短视频真人配音:情感传递的新维度 随着数字化媒体的飞速发展,短视频已经成为人们日常生活中不可或缺的一部分。而在这个视觉盛宴的时代,真人配音的加入为短视频注入了新的活力,不仅丰富了内容形式,更使得情感传递达到…

怎样在网上赚点零花钱?推荐十个正规的赚钱兼职平台

今天要和大家探讨一个激动人心的话题——网络赚钱。在这个互联网日新月异的时代,网络赚钱已经变成了触手可及的现实。如果你正打算在网上赚取一些额外收入,那么这篇文章绝对值得一读! 在这个信息泛滥的时代,网络赚钱的机遇随处可…

全方位质量保障!龙蜥在内核、软件包、容器镜像、三方模块的 CI 工程实践

编者按:在海量的代码测试和构建中, CI(Continuous Integration)在代码提交阶段,对提高软件质量和开发效率起到了至关重要的作用。2023 龙蜥操作系统大会全面繁荣开发者生态分论坛上,龙蜥社区 QA SIG Maintainer、联通数科 CUlinux…

ai发展会不会带来企业的员工垄断呢

写代码写累了,写点个人不成熟的想法,作为记录 随着gpt-4o发布,可以预计的是,AI逐渐能够通过各种外接设备和传感器和真实世界实时交互。那么未来一个接上摄像头,键盘,音响,可移动身体的的AI还会…

左外连接和右外连接的区别?举例说明——以力扣sql 1378. 使用唯一标识码替换员工ID为例

左外连接(LEFT JOIN)和右外连接(RIGHT JOIN)的主要区别在于哪个表的所有行会保留在结果集中 1. 左外连接 (LEFT JOIN) 左外连接会返回左表中的所有行以及右表中符合连接条件的行。如果右表中没有匹配的行,结果集中右…

内存泄漏案例分享1—Activity或Fragment的内存泄漏

背景 笔者优化音乐App内存泄漏时候,遇到了3个典型内存泄漏,泄漏的内存为39kb,一次39KB看上去不多,积少成多很有可能导致OOM,值得重视。 PS:文末有优化方案,优化后内存减少至原先的150分之一。 …

“不是我兄弟”!刘强东内部“狼性训话”流出!

今天,京东创始人刘强东5月24日的线上讲话流出。 在这次线上讲话中,刘强东首先宣布为全体采销员工涨薪20%—100%,随后进行了一番“狼性训话”。往期报道可戳:刘强东怒了:“不是我兄弟”! 刘强东在讲话中指…

【Day8:JAVA字符串的学习】

目录 1、常用API2、String类2.1 String类的特点2.2 String类的常见构造方法2.3 String类的常见面试题:2.3.1 面试题一:2.3.2 面试题二:2.3.3 面试题三:2.3.4 面试题四: 2.4 String类字符串用于比较的方法2.5 String类字…

如何使用DevEco Studio创建Native C++应用

简介 本篇主要介绍如何使用DevEco Studio for OpenAtom OpenHarmony (以下简称“OpenHarmony”)创建一个Native C应用。应用采用“Native C”模板,实现了通过Node-API调用C标准库的功能。本示例通过调用C标准库接口来演示调用过程&#xff0…

windows-386、windows-amd64、windows-arm64这三者有什么区别?

选择文件的版本出现下面问题: Architectures windows-386 :这些是针对 32 位 Windows 系统编译的。windows-amd64 :这些是针对具有 AMD 或 Intel x86-64 架构的 64 位 Windows 系统编译的。windows-arm64 :这些是针对具有 ARM 架…

Golang的内存关系

1.Page Golang的Page,在操作系统对虚拟内存管理的MMU定义的物理页有相似的定义,默认的Page为8KB 2.mSpan 多个连续的Page称之为是一个Span,其定义含义有操作系统的管理的页表相似 3.Size Class Size Class: 相当于 一个等级和刻度, 比如 第二等级 就代表 一个Pag…

从零开始打造教育APP:在线教育系统源码与开发流程

很多人疑问,应该如何从零开始打造一个在线教育APP?今天,小编将详细为大家讲解在线教育系统的源码与开发流程。 一、需求分析 对于在线教育APP,需要要明确以下几点: 1.目标用户:明确APP的用户群体&#xf…

四川景源畅信:抖音小店新手如何做?

随着短视频平台的兴起,抖音小店成为了许多创业者的新选择。但是,对于新手来说,如何在抖音上开设并经营好自己的小店呢?本文将围绕这一问题展开讨论。 一、明确目标和定位作为抖音小店的新手,首先要明确自己的经营目标和定位。是想…

挑战你的数据结构技能:复习题来袭【3】

chap3 练习1 一. 单选题 1. (单选题)栈和队列具有相同的() A. 抽象数据类型B. 逻辑结构C. 存储结构D. 运算 答案: B:逻辑结构 答案分析:逻辑结构都属于线性结构,只是它们对数据的运算不同。 2. (单选题)栈是() A. 顺序存储的线性结构B…

如何处理逻辑设计中的时钟域

1.什么是时钟域 2.PLL对时钟域管理 不管是否需要变频变相,在FPGA内部将外部输入时钟从专用时钟引脚扇入后先做PLL处理。如何调用pll,见另一篇文章。 约束输入时钟 creat_clock -period 10 -waveform {0 5} [get_ports {sys_clk}] 3.单bit信号跨时钟…

黏土风格绘画神器Image to Clay Style Online,可免费生成50000张

🧙‍♂️ 诸位好,吾乃斜杠君,编程界之翘楚,代码之大师。算法如流水,逻辑如棋局。 📜 吾之笔记,内含诸般技术之秘诀。吾欲以此笔记,传授编程之道,助汝解技术难题。 &#…

[pdf,epub]《软件方法》2024版电子书共290页(202405更新)

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 已上传本账号CSDN资源。 或者到以下链接下载: http://www.umlchina.com/url/softmeth2024.html,或点击“阅读原文”。 如果需要提取码:umlc 已排…

mysql高级篇学习(数据表的设计方法,索引优化)

使用docker 安装 mysql 安装 docker # yum 包更新到最新 yum update# 卸载旧的 docker yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine # 安装 gcc 环境 yum -y install…

库卡机器人保养服务包,教你保养技术

为了确保机器人的持续稳定运行和延长使用寿命,正确的库卡机器人保养和KUKA机械手维修至关重要。 KUKA机器人保养工作对于保障其稳定运行和延长使用寿命具有重要意义。通过了解子锐机器人提供的库卡机械手保养服务包,可以确保机器人在良好的状态下为生产线…

英语新概念2-回译法-lesson16

第一次回译 if you ___ your car on a wrong place, the traffic police man will find you quickly. If he do not give you the ticket,you are lucky.However,the ___ not all like this,The police man is __ sometimes.I had a holiday in Sweden, I found a ___ in my c…