Avere offset di byte per un file.
Esiste uno strumento che fornisce il numero di riga per questo byte?
- Conteggio byte che inizia con zero, come in: il primo byte è 0 non 1.
- Numero di riga che inizia con 1.
- Il file può avere sia testo semplice, BLOB "binari", caratteri multibyte ecc. Ma la sezione che mi interessa: Fine del file, ha solo ASCII.
Esempio, file:
001
002
003 <<-- first zero on this line is byte 8
004
Avere offset di byte 8
che mi darebbe la linea 3
.
Immagino che potrei usare qualcosa del genere per trovare il numero di riga:
un. tail -c+(offset + 1) file | wc -l
, qui +1
come tail
conta da 1.
b. wc -l file
c. Allora tail -n+num
dove num
èa - b + 1
Ma ... esiste uno strumento abbastanza comune che può darmi num
direttamente?
Modifica, err: o il più ovvio:
head -c+offset file | wc -l
0x0a
byte.
:echo byte2line(offset+1)
.
vim -b
e vim
+ set binary
+ il file aperto è stato danneggiato. (Ah. Improvvisamente ricordo quale plugin lo rovina). Ma, comunque, mentre lo uso in batch e in combinazione con una serie di script Vim è stato presto abbandonato. Ma +1 comunque.
0xa
ovunque. Il concetto di linee in un file binario non ha senso.