从文件中检索字节范围的 Linux 命令

Ram*_*mon 21 linux command-line-interface

我知道这一点head并且tail可以-c选择指定字节偏移量。我正在寻找一种从大型日志文件中有效提取字节范围的方法。

Jan*_*nen 27

Unix 命令的 DareDevildd来救援!

dd if=yourfile ibs=1 skip=200 count=100
Run Code Online (Sandbox Code Playgroud)

这将从字节 200 开始并显示 100 个下一个字节,或者换句话说,字节 200-300。ibs表示 dd 一次只读取一个字节而不是默认的 512 字节,但仍以默认的 512 字节块写出。去看看是否会ibs损害性能,我希望不会。

  • 对于 782090815 字节的文件,我得到这些时间:`time dd if=file.txt | wc -l` = 00:00:03s。`时间 dd if=file.txt ibs=1 count=782090815 | 厕所-l` = 9:05:19 (3认同)

Sir*_*rch 14

如果您对字节感兴趣,会od更感兴趣。

-j, --skip-bytes=bytes
-N, --read-bytes=bytes
Run Code Online (Sandbox Code Playgroud)

所以要读取从1024字节开始的16个字节,并以ascii输出

od -j 1024 -N 16 -a /bin/sh
Run Code Online (Sandbox Code Playgroud)