Byte-Offset für eine Datei.
Gibt es ein Tool, das die Zeilennummer für dieses Byte angibt?
- Byteanzahl beginnend mit Null, wie in: Das erste Byte ist 0, nicht 1.
- Zeilennummer beginnend mit 1.
- Die Datei kann sowohl einfachen Text als auch "binäre" Blobs, Multibyte-Zeichen usw. enthalten. Der Abschnitt, an dem ich interessiert bin: Dateiende, enthält jedoch nur ASCII.
Beispiel, Datei:
001
002
003 <<-- first zero on this line is byte 8
004
Ein Byte-Offset 8
, der mir eine Zeile geben würde 3
.
Ich schätze, ich könnte so etwas verwenden, um die Zeilennummer zu finden:
ein. tail -c+(offset + 1) file | wc -l
, Hier +1
als tail
Zählungen von 1.
b. wc -l file
c. tail -n+num
Wo num
ist dann ?a - b + 1
Aber ... gibt es ein ziemlich verbreitetes Werkzeug, das mir num
direkt zur Verfügung stehen kann?
Bearbeiten, äh: oder das offensichtlichere:
head -c+offset file | wc -l
0x0a
Bytes getrennt sind .
:echo byte2line(offset+1)
.
vim -b
und vim
+ set binary
+ geöffneter Datei wurde es beschädigt. (Ah. Plötzlich erinnere ich mich, welches Plugin es vermasselt). Aber trotzdem, da ich dies in Stapeln und in Kombination mit einer Reihe von Skripten verwende, wurde Vim früh aufgegeben. Aber trotzdem +1.
0xa
überall sein. Das Konzept der Zeilen in einer Binärdatei ist bedeutungslos.