大佬教程收集整理的这篇文章主要介绍了linux – 如何转储二进制文件的一部分,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在过去,我已经使用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]}捕获,我决定删除新文件.
以上是大佬教程为你收集整理的linux – 如何转储二进制文件的一部分全部内容,希望文章能够帮你解决linux – 如何转储二进制文件的一部分所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。