linux – 如何转储二进制文件的一部分
发布时间:2021-01-12 13:46:13 所属栏目:Linux 来源:互联网
导读:我有二进制,想要提取一部分,从知道的字节串(即FF D8 FF D0)开始,以已知的字节串(AF FF D9)结束, 在过去,我已经使用dd从开始/结束部分二进制文件,但这个命令似乎不支持我所要求的. 终端可以做什么工具? 在单个管道中: xxd -c1 -p file | awk -v b=ffd8ffd0 -
我有二进制,想要提取一部分,从知道的字节串(即FF D8 FF D0)开始,以已知的字节串(AF FF D9)结束, 在过去,我已经使用dd从开始/结束部分二进制文件,但这个命令似乎不支持我所要求的. 终端可以做什么工具? 解决方法在单个管道中:xxd -c1 -p file | awk -v b="ffd8ffd0" -v e="aaffd9" ' found == 1 { print $0 str = str $0 if (str == e) {found = 0; exit} if (length(str) == length(e)) str = substr(str,3)} found == 0 { str = str $0 if (str == b) {found = 1; print str; str = ""} if (length(str) == length(b)) str = substr(str,3)} END{ exit found }' | xxd -r -p > new_file test ${PIPESTATUS[1]} -eq 0 || rm new_file 这个想法是在两个xxd之间使用awk来选择所需文件的一部分.一旦找到第一个模式,awk打印字节,直到找到第二个模式并退出. 必须考虑到第一种模式被找到而第二种不是的情况.它在awk脚本的END部分完成,返回非零退出状态.这是由bash的${PIPESTATUS [1]}捕获,我决定删除新文件. 请注意,空文件也意味着没有找到任何内容. (编辑:百色站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- Mount NAS Storage in Linux Overview 转载
- 尽管在Linux内核模块中使用EXPORT_SYMBOL,如何防
- linux – 在Bash中并行迭代IP地址
- LINUX实操:Ubuntu下U盘只读文件系统,图标上锁,
- linux – 在64位机器上运行valgrind 32位二进制文
- c – Visual Studio交叉编译到Linux
- 是否有可能运行使用linux中的react-native开发的
- LINUX教学:sudo 出现unable to resolve host 解决
- LINUX教程:CentOS 7 升级内核
- linux – 如何检查iptables中每条规则的命中数?
热点阅读