como converter string para arquivo binário inteiro usando linha de comando em linux

StackOverflow https://stackoverflow.com/questions/422840

  •  05-07-2019
  •  | 
  •  

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?

Foi útil?

Solução 2

ok bem vendo que Mark Williams parece ter awol gone vou postar a versão corrigida da sua resposta

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
scroll top