Это просто - у меня есть поток данных с IPv4-адресами, закодированными в шестнадцатеричное представление, например, 0c22384e, что означает 12.34.56.78.
Я выяснил команду sed с заменой захваченных октетов на десятичные числа, разделенныепо точке.
echo "0c22384e" | sed -E 's/([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/printf "%d.%d.%d.%d" 0x\1 0x\2 0x\3 0x\4/eg'
Это работает с одним числом, НО, как только я добавляю текст, который не должен совпадать, он также передается для исполнения - в данном случае через printf.
Как сохранить непревзойденную часть строки, не передавая ее на выполнение?