Cómo convertir una cadena a un archivo entero binario usando la línea de comando en Linux
Pregunta
Lo que quiero es tomar un entero representado como una cadena, por ejemplo " 1234 " ;, y convertirlo a un archivo llamado int, que contenga un entero endian grande de 32 bits, con el valor 1234.
La única forma en que he descubierto hacer esto es algo así como
echo 1234 | awk '{printf "0: %08X", $1}' | xxd -r > int
que es un poco desagradable!
¿Alguien sabe una mejor manera?
Solución 2
ok, bueno, al ver que Mark Williams parece haber ido mal, publicaré la versión corregida de su respuesta
echo 1234 | perl -e 'print pack("N", <STDIN>); > int
Otros consejos
Una forma un poco más simple sería:
printf "0: %08X" 1234 | xxd -r > int
esto parece producir la misma salida en mi sistema. asegúrese de verificar perldoc -f pack
.
echo '1234' | perl -e 'print pack("nn", 0,<STDIN>);' > int
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow