我正在编写一个bash脚本,该脚本需要获取文件的头(前10个字节),然后在另一部分中获取除前10个字节以外的所有内容。这些是二进制文件,在前10个字节中可能会有\0
和\n
。似乎大多数实用程序都可使用ASCII文件。什么是完成此任务的好方法?
Answers:
如前所述,要获取前10个字节:
head -c 10
要获取除前10个字节以外的所有字节(至少使用GNU tail
):
tail -c+11
dd
主意,但是此选项不需要更改缓冲区大小,因此可以很好地处理大型文件。谢谢。
您可以使用该dd
命令从二进制文件复制任意数量的字节。
dd if=infile of=outfile1 bs=10 count=1
dd if=infile of=outfile2 bs=10 skip=1
dd
不可靠。由于许多不同的原因,它读取的字节可能少于请求的字节。
{ printf a; sleep 1; printf b; } | dd bs=2 count=1 2>/dev/null | wc -c