我有一个非常大的文件,开头包含 n 行文本(n <1000),一个空行,然后是许多未类型化的二进制数据。
我想提取前 n 行文本,然后以某种方式提取二进制数据的确切偏移量。
提取第一行很简单,但我怎样才能得到偏移量呢? bash 不支持编码,所以只计算字符数是没有意义的。
最佳答案
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
在最后一步中,我使用 5 而不是 4 来跳过换行符。
也适用于文件中的变音符号 (äöü)。
关于bash:cat 文件的第一行并获取位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5754501/