comment convertir une chaîne en fichier entier binaire à l'aide de la ligne de commande sous linux
Question
Ce que je veux, c'est prendre un entier représenté sous forme de chaîne, par exemple " 1234 " et le convertir en un fichier appelé int, contenant un entier big endian de 32 bits, avec le valeur 1234.
La seule façon pour moi de faire cela est quelque chose comme
echo 1234 | awk '{printf "0: %08X", $1}' | xxd -r > int
qui est un peu méchant!
Quelqu'un connaît-il un meilleur moyen?
La solution 2
ok et bien voyant que la marque williams semble avoir disparu, je posterai la version corrigée de sa réponse
echo 1234 | perl -e 'print pack("N", <STDIN>); > int
Autres conseils
Une façon un peu plus simple serait:
printf "0: %08X" 1234 | xxd -r > int
cela semble produire la même sortie sur mon système. assurez-vous de vérifier perldoc -f pack
.
echo '1234' | perl -e 'print pack("nn", 0,<STDIN>);' > int
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow