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