Cómo convertir una cadena a un archivo entero binario usando la línea de comando en Linux

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

  •  05-07-2019
  •  | 
  •  

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?

¿Fue útil?

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