Наличие байтового смещения для файла.
Есть ли инструмент, который дает номер строки для этого байта?
- Количество байтов, начинающееся с нуля, как в: первый байт 0, а не 1.
- Номер строки начинается с 1.
- Файл может иметь как простой текст, так и двоичные двоичные объекты, многобайтовые символы и т. Д. Но интересующий меня раздел: Конец файла, имеет только ASCII.
Пример, файл:
001
002
003 <<-- first zero on this line is byte 8
004
Наличие байтового смещения 8
, которое даст мне строку 3
.
Думаю, я мог бы использовать что-то вроде этого, чтобы найти номер строки:
а. tail -c+(offset + 1) file | wc -l
, здесь, +1
как tail
считается из 1.
б. wc -l file
с. Тогда 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
где угодно. Понятие строк в двоичном файле не имеет смысла.