Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Changed l'endianness de l'affichage d'od

13 réponses
Avatar
Rémi Moyen
Bonjour,

J'ai un fichier binaire o=F9 sont =E9crit des entiers (32 bits, non
sign=E9s) en format big-endian. Manque de pot, la machine sur laquelle
je travaille est little-endian. Du coup, si j'utilise od pour regarder
mon fichier, je me retrouve avec n'importe quoi (enfin, pas tout =E0
fait, mais pas ce que je veux...).

Par exemple, si mon fichier (d=E9cod=E9) commence par "22 4 14", =E7a me
donne les octets (en d=E9cimal) "000 000 000 022 000 000 000 004 000 000
000 014". Lu par od sur ma machine, =E7a devient "369098752 67108864
234881024".

Je n'ai pas acc=E8s facilement =E0 une machine big-endian sur laquelle od
se comporterait comme je veux, il faut donc que je trouve une solution
sur une machine little-endian.

Ma question est donc : comment je peux faire pour obtenir l'affichage
qui va bien ? Il me semble qu'il n'y a pas d'options pour forcer od =E0
considerer une endianness particuli=E8re (m=EAme si il a r=E9guli=E8rement =
des
discussions =E0 ce sujet), ni de combinaisons d'options qui revienne au
m=EAme.

Quelqu'un conna=EEt-il une (suite de) commande(s) qui permettrait de
retourner un (bout de) fichier binaire avant de le passer =E0 od ? Ou un
autre outil similaire =E0 od et qui permettrait de faire =E7a (j'ai
regard=E9 rapidement hexdump, mais =E7a a l'air pareil) ? J'ai bien trouv=
=E9
des outils graphiques (khexedit, par exemple) qui font =E7a, mais
j'aimerais avoir quelque chose en ligne de commande et scriptable...

Merci d'avance !
--
R=E9mi Moyen

3 réponses

1 2
Avatar
Rémi Moyen
On Jul 10, 10:34 am, Nicolas George <nicolas$
wrote:

> Not enough arguments for unpack at -e line 1, at EOF

Rajoute « , $_ » à la fin.



Ah oui, là ça marche !

$ /bin/echo -n -e "26000000" | perl -pe 'BEGIN{$/=4} $_=pack
V, unpack N, $_' | od -to1
0000000 000 000 000 026
0000004

Je vais de ce pas me faire un alias, et ça devrait bien m'arranger la
vie.

Merci à tous !
--
Rémi Moyen
Avatar
Nicolas George
Stephane CHAZELAS wrote in message
:
(perl 5.10.0).



perldelta « what is new for perl 5.10.0 » dit :

# "unpack()" now defaults to unpacking the $_ variable.
Avatar
Cyrille Lefevre
Rémi Moyen a écrit :
On Jul 10, 10:34 am, Nicolas George <nicolas$
wrote:

Not enough arguments for unpack at -e line 1, at EOF


Rajoute « , $_ » à la fin.



Ah oui, là ça marche !

$ /bin/echo -n -e "26000000" | perl -pe 'BEGIN{$/=4} $_=pa ck
V, unpack N, $_' | od -to1
0000000 000 000 000 026
0000004

Je vais de ce pas me faire un alias, et ça devrait bien m'arranger la
vie.



Bonjour,

tu vois, je t'avais dit, il y a des malades sur le forum !
dont je penses faire parti d'ailleurs...

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
1 2