Com deslocamento de bytes para um arquivo.
Existe uma ferramenta que fornece o número da linha para este byte?
- Contagem de bytes começando com zero, como em: primeiro byte é 0 e não 1.
- Número da linha começando com 1.
- O arquivo pode ter texto simples, blobs "binários", caracteres multibyte etc. Mas a seção em que estou interessado: Fim do arquivo, possui apenas ASCII.
Exemplo, arquivo:
001
002
003 <<-- first zero on this line is byte 8
004
Tendo byte offset 8
que me daria linha 3
.
Acho que eu poderia usar algo assim para encontrar o número da linha:
uma. tail -c+(offset + 1) file | wc -l
, aqui +1
como tail
conta a partir de 1.
b. wc -l file
c. Então tail -n+num
onde num
estáa - b + 1
Mas ... existe uma ferramenta bastante comum que possa me fornecer num
diretamente?
Editar, errar: ou o mais óbvio:
head -c+offset file | wc -l
0x0a
bytes.
:echo byte2line(offset+1)
.
vim -b
e vim
+ set binary
+ arquivo aberto ele foi corrompido. (Ah. De repente, lembro-me de qual plugin estraga tudo). Mas, de qualquer maneira, como eu uso isso em lotes e em combinação com uma variedade de scripts, o Vim foi abandonado cedo. Mas +1 de qualquer maneira.
0xa
qualquer lugar. O conceito de linhas em um arquivo binário não tem sentido.