Байтове зміщення для файлу.
Чи є інструмент, який дає номер рядка для цього байта?
- Кількість байтів, починаючи з нуля, як у: перший байт дорівнює 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
c. Тоді 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
де завгодно. Поняття рядків у двійковому файлі безглуздо.