【发布时间】:2021-08-13 01:07:43
【问题描述】:
有没有办法指定从命令行读取二进制文件中某个位置/偏移量的文件字节? (即单行) 例如
perl -ne <...seek n bytes into file... do stuff...> inputfile
我没有看到这个,并尝试过使用 seek、sysseek 等。
只是想通过读取文件中不同偏移量的字节长度来试验pack 和unpack。
更新
除了接受的答案之外,我只想添加以下等效答案,但(对我而言)更容易记住+阅读
perl -lne 'BEGIN{$/=undef, $offset=1, $len=2} print unpack("H*", substr($_, $offset, $len))' input
更新2 为了进行 hexdumps 以下工作
perl -0777 -ne '(printf "0x%02x ", $_) for (unpack "C*", substr($_, 0x1, 0x2))' input
【问题讨论】:
标签: perl binaryfiles one-liner