Linha de comando para reverter a ordem dos bytes / alterar endianess
Estou hackeando alguns scripts tentando analisar alguns dados escritos por JavasDataOutputStream#writeLong(...)
. Como o java sempre parece escrever big endian, tenho um problema ao alimentar os bytes paraod
. Isso se deve ao fato de queod
sempre assume que o endianess corresponde ao endianess do arco em que você está atualmente, e eu estou em uma pequena máquina endia
Estou procurando uma linha simples para reverter a ordem dos bytes. Digamos que você saiba que os últimos 8 bytes de um arquivo são muito escritos pelowriteLong(...)
método. Minha melhor tentativa atual de imprimir esse período é
tail -c 8 file | tac | od -t d8
, mastac
parece funcionar apenas em texto (razoável). Encontrei algumas referências add conv=swab
, mas isso apenas troca bytes em pares e não pode reverter esses oito byte
Alguém conhece um bom one-liner para isso?