como converter string para arquivo binário inteiro usando linha de comando em linux
Pergunta
O que eu quero é tomar um inteiro representado como uma string, por exemplo "1234", e convertê-lo em um arquivo chamado int, contendo uma bits 32 inteiro endian grande, com o valor de 1234.
A única maneira que eu descobri de fazer isso é algo como
echo 1234 | awk '{printf "0: %08X", $1}' | xxd -r > int
que é um! Desagradável pouco
Alguém sabe uma maneira melhor?
Solução 2
ok bem vendo que Mark Williams parece ter awol gone vou postar a versão corrigida da sua resposta ??p>
echo 1234 | perl -e 'print pack("N", <STDIN>); > int
Outras dicas
Uma maneira um pouco mais simples seria:
printf "0: %08X" 1234 | xxd -r > int
este parece produzir a mesma saída no meu sistema. Não esqueça de verificar perldoc -f pack
.
echo '1234' | perl -e 'print pack("nn", 0,<STDIN>);' > int
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow