Size: a a a

2021 December 23

NG

Nicholas Guriev in pro.vim
То есть вот у меня файл debug_info.data. И нужно в нём байты [0x20, 0x24) и [0x48, 0x4c) заменить на 44 (в десятичной записи), кодируя их little endian.
источник

NG

Nicholas Guriev in pro.vim
mymedia@barberry:/tmp/tmp.G3SPdgfaZo$ xxd debug_info.data 
00000000: 3000 0000 0400 0000 0000 0801 0000 0000  0...............
00000010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000020: 0a00 0000 0000 0000 82a8 18ee c598 fd01  ................
00000030: 0000 0000 2000 0000 0400 1d00 0000 0801  .... ...........
00000040: 6400 0000 1e00 0000 0a00 0000 1000 0000  d...............
00000050: 9e22 43ba 4066 292c                      ."C.@f),
источник

G

GNU/Vsevolod in pro.vim
dd?
источник

NG

Nicholas Guriev in pro.vim
разве dd(1) умеет работать в цикле и нужным образом форматировать цифры?
источник

YG

Yuriy Goncharov in pro.vim
xxd отобразить в текст, поменять грепом и потом обратно xxd в бинарник
источник

NG

Nicholas Guriev in pro.vim
а grep(1) ещё должен как-то сконвертировать смещения 🤔
источник

NG

Nicholas Guriev in pro.vim
пока что более простым решением кажется сценарий на Python
https://paste.debian.net/1224534/
источник

SS

Sergey Skvortsov in pro.vim
Короче заммапить и поменять байты напрямую
источник

G

GNU/Vsevolod in pro.vim
printf умеет форматировать
источник

NG

Nicholas Guriev in pro.vim
а как '\x5f%.0s' {1..4} превращается в ____
?
источник

NG

Nicholas Guriev in pro.vim
ну {1..4} то же самое что и 1 2 3 4
источник

NG

Nicholas Guriev in pro.vim
а как быть с printf-заклинанием \x5f%.0s
источник

NG

Nicholas Guriev in pro.vim
кажется, его надо по-отдельности читать

\x5f превращается в _
а %.0s выводит пустую строчку, но нужен для повторения подчёркивания
источник

G

GNU/Vsevolod in pro.vim
В башевом printf, fmt-string "повторяется", пока не будут исчерпаны все следующие аргументы. %.s аналогично %.0s, буквально: "строка с 0-м precision", т.е. ничего
источник

G

GNU/Vsevolod in pro.vim
Вот пара примеров для понимания:
printf '%d %d %d\n' {1..7}
printf '[%.s]\n' longstring
источник

G

GNU/Vsevolod in pro.vim
Насчет конверсии little/big endian не уверен, можно ли через printf сделать.
источник

NG

Nicholas Guriev in pro.vim
кажись, не принципиально, на данном этапе мне только little endian нужно
источник

VG

Vadim Goncharov in pro.vim
в курилке ответили
источник

cc

cent cent in pro.vim
А что за курилка?
источник

VG

Vadim Goncharov in pro.vim
источник