使用 gnu-coreutils 获取二进制文件的一部分,bash
get a part of a binary file using gnu-coreutils, bash
我想获取二进制文件的一部分,从字节#480161397到#480170447(包括在内,总共9051字节)
我使用 cut -b
,我希望 trunk1.gz 的大小为 9051 字节,但我得到了不同的结果。
$ wget https://commoncrawl.s3.amazonaws.com/crawl-data/CC-MAIN-2016-07/segments/1454701152097.59/warc/CC-MAIN-20160205193912-00264-ip-10-236-182-209.ec2.internal.warc.gz
$ cut -b480161397-480170447 CC-MAIN-20160205193912-00264-ip-10-236-182-209.ec2.internal.warc.gz >trunk1.gz
$ echo $((480170447-480161397+1))
9051
$ ls -l trunk1.gz
-rw-r--r-- 1 david staff 3400324 Sep 8 10:28 trunk1.gz
怎么了?
cut -bN-M
从输入的每个行复制范围N-M
字节。
示例:
$ cut -b4-7 <<END
0123456789
abcdefghij
ABCDEFGHIJ
END
输出:
3456
defg
DEFG
考虑将 dd
用于您的目的。
如果你使用二进制,我建议你使用 dd
命令。
dd if=trunk1.gz bs=1 skip=480161397 count=9051 of=output.bin
bs
是块大小,设置为1字节。
我想获取二进制文件的一部分,从字节#480161397到#480170447(包括在内,总共9051字节)
我使用 cut -b
,我希望 trunk1.gz 的大小为 9051 字节,但我得到了不同的结果。
$ wget https://commoncrawl.s3.amazonaws.com/crawl-data/CC-MAIN-2016-07/segments/1454701152097.59/warc/CC-MAIN-20160205193912-00264-ip-10-236-182-209.ec2.internal.warc.gz
$ cut -b480161397-480170447 CC-MAIN-20160205193912-00264-ip-10-236-182-209.ec2.internal.warc.gz >trunk1.gz
$ echo $((480170447-480161397+1))
9051
$ ls -l trunk1.gz
-rw-r--r-- 1 david staff 3400324 Sep 8 10:28 trunk1.gz
怎么了?
cut -bN-M
从输入的每个行复制范围N-M
字节。
示例:
$ cut -b4-7 <<END
0123456789
abcdefghij
ABCDEFGHIJ
END
输出:
3456
defg
DEFG
考虑将 dd
用于您的目的。
如果你使用二进制,我建议你使用 dd
命令。
dd if=trunk1.gz bs=1 skip=480161397 count=9051 of=output.bin
bs
是块大小,设置为1字节。