ファイルのバイトオフセットがある。
このバイトの行番号を提供するツールはありますか?
- 最初のバイトは1ではなく0です。
- 1から始まる行番号。
- ファイルには、プレーンテキスト、「バイナリ」ブロブ、マルチバイト文字などの両方を含めることができます。しかし、興味があるセクション:ファイルの終わりにはASCIIしかありません。
例、ファイル:
001
002
003 <<-- first zero on this line is byte 8
004
8
私にラインを与えるバイトオフセットを持っています3
。
行番号を見つけるためにこのようなものを使用できると思います:
a。tail -c+(offset + 1) file | wc -l
、ここ+1
でtail
は1から数えます
。wc -l file
c。次にtail -n+num
どこnum
にa - b + 1
しかし...私にnum
直接与えることができるかなり一般的なツールはありますか?
編集、エラー:またはより明白な:
head -c+offset file | wc -l
0x0a
バイトで区切られたデータです。
:echo byte2line(offset+1)
。
vim -b
、vim
+ + set binary
+ファイルを開いても破損していました。(ああ、突然、どのプラグインがそれを台無しにしたか思い出します)。しかし、とにかく、私はこれをバッチで使用し、さまざまなスクリプトと組み合わせて使用するため、Vimは早期に放棄されました。とにかく+1。
0xa
どこにでも置くことができます。バイナリファイルの行の概念は無意味です。