Você pode quase fazer o que quiser com hexdump
, mas não consigo descobrir como obter aspas & únicas barras invertidas na string de formato. Então eu faço um pouco de pós-processamento com sed
. Como bônus, também indentei cada linha em 4 espaços. :)
hexdump -e '16/1 "_x%02X" "\n"' filename | sed 's/_/\/g; s/.*/ "&"/'
Editar
Como Cengiz Can apontou, a linha de comando acima não combina bem com linhas curtas de dados. Então aqui está uma nova versão melhorada:
hexdump -e '16/1 "_x%02X" "\n"' filename | sed 's/_/\/g; s/\x //g; s/.*/ "&"/'
Como Malvineous menciona nos comentários, também precisamos passar a opção -v
verbose para hexdump
para evitar que ele abrevie execuções longas de bytes idênticos em *
.
hexdump -v -e '16/1 "_x%02X" "\n"' filename | sed 's/_/\/g; s/\x //g; s/.*/ "&"/'