Переменная должна быть выведена (с помощью эха )в sed. Использование sed -n
для подавления вывода sed. Редактировать-не нужно sed -n
, если мы опустим флаг sed p
.
#!/bin/bash
FILE='\\edi3\welshch\test'
FILEPATH="$(echo "$FILE" | sed 's/\\/\//g')"
echo $FILEPATH
Так что я все еще работаю над этим:
Я пытаюсь отредактировать файл загрузки встроенного ПО, что не имеет никакого смысла... поэтому мне нужно фактически отредактировать исполняемые файлы в экшн-камере...
Итак, я провел небольшое исследование и придумал следующие коды :constexpr static const VENC _H265 _CBR _S defH265Cbr = {.u32Gop = 50,.u32StatTime = 5,.u32SrcFrameRate = 25,.fr32DstFrameRate = 25,.u32Битрейт = 20480 };
constexpr static const VENC_H265_VBR_S defH265Vbr =
{
.u32Gop = 50,
.u32StatTime = 5,
.u32SrcFrameRate = 25,
.fr32DstFrameRate = 25,
.u32MaxBitRate = 20480
Нужно ли мне создавать bash-скрипт для поиска именно этого элемента строки в определенном файле, или я могу просто каким-то образом написать bash для редактирования.u32MaxBitRate?
xxd
, dd
иprintf
:Номер версии V2.1.0.3-A
можно найти здесь (строки 3339 -3340):
$ xxd paramdef
...
0000d0a0: 0000 0000 0000 0000 0056 322e 312e 322e .........V2.1.2.
0000d0b0: 332d 4200 0000 0000 0000 0000 0000 0000 3-B.............
...
и строка начинается с d0a9
hex = 53417
dec (преобразована с использованиемprintf '%d' 0xd0a9
).
Давайте перезапишем строку версии наV2.1.2.3-B
:
printf 'V2.1.2.3-B' | dd of=paramdef bs=1 seek=53417 conv=notrunc
Или эквивалент с использованием шестнадцатеричных данных:
# helper output
$ printf 'V2.1.2.3-B' | xxd -p
56322e312e322e332d42
$ xxd -r -p <<<'56322e312e322e332d42' | dd of=paramdef bs=1 seek=53417 conv=notrunc
Замена 3
на 4
в d0b0
в одном -вкладыше:
printf '4' | dd of=paramdef bs=1 seek=$(printf '%d' 0xd0b0) conv=notrunc