bash:cat文件的第一行并获取位置

sch*_*nge 4 bash file cat

我有一个非常大的文件,其中包含n行文本(n为<1000),一行为空行,然后是大量无类型二进制数据.

我想提取前n行文本,然后以某种方式提取二进制数据的确切偏移量.

提取第一行很简单,但我如何获得偏移?bash不是编码意识,所以只计算字符数是没意义的.

les*_*ana 5

grep有一个-b输出字节偏移量的选项.

例:

$ hexdump -C foo 
00000000  66 6f 6f 0a 0a 62 61 72  0a                       |foo..bar.|
00000009
$ grep -b "^$" foo 
4:
$ hexdump -s 5 -C foo
00000005  62 61 72 0a                                       |bar.|
00000009
Run Code Online (Sandbox Code Playgroud)

在最后一步中,我使用5而不是4来跳过换行符.

也适用于文件中的变音符号(äöü).