come convertire una stringa in un file intero binario usando la riga di comando in linux
Domanda
Quello che voglio è prendere un numero intero rappresentato come una stringa, ad esempio " 1234 " e convertirlo in un file chiamato int, contenente un intero endian big a 32 bit, con il valore 1234.
L'unico modo in cui ho capito per farlo è qualcosa di simile
echo 1234 | awk '{printf "0: %08X", $1}' | xxd -r > int
che è un po 'brutto!
Qualcuno conosce un modo migliore?
Soluzione 2
ok bene visto che Mark William sembra essere andato male, posterò la versione corretta della sua risposta
echo 1234 | perl -e 'print pack("N", <STDIN>); > int
Altri suggerimenti
Un modo leggermente più semplice sarebbe:
printf "0: %08X" 1234 | xxd -r > int
questo sembra produrre lo stesso output sul mio sistema. assicurati di controllare perldoc -f pack
.
echo '1234' | perl -e 'print pack("nn", 0,<STDIN>);' > int
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow