comment convertir une chaîne en fichier entier binaire à l'aide de la ligne de commande sous linux

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

  •  05-07-2019
  •  | 
  •  

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?

Était-ce utile?

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