在Linux桌面(RHEL4)上,我想从大文件(> 1 Gig)中提取一系列字节(通常小于1000).我知道文件的偏移量和块的大小.
我可以编写代码来执行此操作但是有命令行解决方案吗?
理想情况下,例如:
magicprogram --offset 102567 --size 253 < input.binary > output.binary
Run Code Online (Sandbox Code Playgroud)
Tho*_*thy 99
试试dd:
dd skip=102567 count=253 if=input.binary of=output.binary bs=1
Run Code Online (Sandbox Code Playgroud)
Chr*_*ger 39
这是一个老问题,但我想添加另一个dd更适合大块字节的命令版本:
dd if=input.binary of=output.binary skip=$offset count=$bytes iflag=skip_bytes,count_bytes
Run Code Online (Sandbox Code Playgroud)
where $offset和$bytes是以字节为单位的数字.
与托马斯接受的答案的不同之处在于,bs=1这里没有出现.bs=1产生的输入和输出块大小为1字节,这使得当提取的字节数很大时非常慢.
head -c + tail -c
不确定dd效率如何,但它很有趣:
printf "123456789" | tail -c+2 | head -c3
Run Code Online (Sandbox Code Playgroud)
从第二个开始选择3个字节:
234
Run Code Online (Sandbox Code Playgroud)
另请参阅:https : //stackoverflow.com/a/1272995/895245
| 归档时间: |
|
| 查看次数: |
37411 次 |
| 最近记录: |