Décalage d'octets pour un fichier.
Existe-t-il un outil qui donne le numéro de ligne pour cet octet?
- Nombre d'octets commençant par zéro, comme dans: le premier octet est 0 et non 1.
- Numéro de ligne commençant par 1.
- Le fichier peut avoir à la fois du texte brut, des blobs "binaires", des caractères multi-octets, etc. Mais la section qui m'intéresse: Fin du fichier, n'a que ASCII.
Exemple, fichier:
001
002
003 <<-- first zero on this line is byte 8
004
Avoir un décalage d'octet 8
qui me donnerait une ligne 3
.
Je suppose que je pourrais utiliser quelque chose comme ça pour trouver le numéro de ligne:
une. tail -c+(offset + 1) file | wc -l
, ici +1
pour tail
1.
b. wc -l file
c. Alors tail -n+num
où num
esta - b + 1
Mais ... existe-t-il un outil assez courant qui peut me donner num
directement?
Modifier, errer: ou le plus évident:
head -c+offset file | wc -l
0x0a
octets.
:echo byte2line(offset+1)
.
vim -b
et vim
+ set binary
+ fichier ouvert, il a été corrompu. (Ah. Soudain, je me souviens quel plugin le gâche). Mais, de toute façon, comme je l'utilise par lots et en combinaison avec une gamme de scripts, Vim a été abandonné très tôt. Mais +1 quand même.
0xa
n'importe où. Le concept de lignes dans un fichier binaire n'a pas de sens.