用什么linux命令能获取一个文件从某个偏移开始的size个字节的内容

时间:2023-01-18 16:31:06
用什么linux命令能获取一个文件从某个偏移开始的size个字节的内容

例如 文件内容为:
123456
78

使用什么命令能把34这两个字符切出来,即提供一个偏移和一个size,输出需要的内容。

10 个解决方案

#1


就这个文件,用sed就可以
sed -n '1s/..\(..\).*/\1p' urfile

#2


这个文件 只是一个例子

需要的是对任意文件(包括二进制文件),提取从某个offset开始的size个字节的数据。

我记得有个这样的命令,但是忘记了,高人指点下吧。

#3


echo "0123456789" | head -c 8 | tail -c 2

#4


二进制文件同样适用
$ printf "\001\002\003\004" | head -c 3 | tail -c 2 | od -t x1
0000000 02 03
0000002

#5


引用 2 楼 crhacker 的回复:
这个文件 只是一个例子

需要的是对任意文件(包括二进制文件),提取从某个offset开始的size个字节的数据。

我记得有个这样的命令,但是忘记了,高人指点下吧。

我那也是个例子。 
这样的命令有, 就是dd

#6


对,用dd
dd if=source of=dest bs=1 skip=10 count=20
skip后面就是跳过的字节,count后面是拷贝的字节

#7


收藏此帖,日后有用!

#8


用split命令,先把文件拆分为多个小文件,然后用cat就可以了。
拆分文件大小为1k,也可以是1b,或者1m之类的单位
split -b 1kb /tmp/file sfile
会依次得到sfilea,sfileb,......

#9


学习了

#10


学习~~~

#1


就这个文件,用sed就可以
sed -n '1s/..\(..\).*/\1p' urfile

#2


这个文件 只是一个例子

需要的是对任意文件(包括二进制文件),提取从某个offset开始的size个字节的数据。

我记得有个这样的命令,但是忘记了,高人指点下吧。

#3


echo "0123456789" | head -c 8 | tail -c 2

#4


二进制文件同样适用
$ printf "\001\002\003\004" | head -c 3 | tail -c 2 | od -t x1
0000000 02 03
0000002

#5


引用 2 楼 crhacker 的回复:
这个文件 只是一个例子

需要的是对任意文件(包括二进制文件),提取从某个offset开始的size个字节的数据。

我记得有个这样的命令,但是忘记了,高人指点下吧。

我那也是个例子。 
这样的命令有, 就是dd

#6


对,用dd
dd if=source of=dest bs=1 skip=10 count=20
skip后面就是跳过的字节,count后面是拷贝的字节

#7


收藏此帖,日后有用!

#8


用split命令,先把文件拆分为多个小文件,然后用cat就可以了。
拆分文件大小为1k,也可以是1b,或者1m之类的单位
split -b 1kb /tmp/file sfile
会依次得到sfilea,sfileb,......

#9


学习了

#10


学习~~~