Saltar al contenido

¿Cómo convertir datos de archivo a hexadecimal simple?

Hacemos una revisión profunda cada una de las reseñas en nuestra web con el objetivo de enseñarte en todo momento la información con la mayor veracidad y actualizada.

Solución:

hexdump -ve '1/1 "%02x"'
xxd -p | tr -d 'n'

Si te cansas de escribir este cada vez, cree un alias.

Cómo convertir fácilmente a/desde datos hexadecimales simples legibles por máquina

En breve.

$ xxd -plain test.txt > test.hex
$ xxd -plain -revert test.hex test2.txt
$ diff test.txt test2.txt
$

Explicación:

$ xxd -plain test.txt > test.hex

Esto escribe una codificación hexadecimal de los datos en test.txt en el nuevo archivo test.hex. los -p o -plain La opción hace que xxd utilice el formato hexadecimal “simple” sin espacios entre pares de dígitos hexadecimales (es decir, sin espacios entre valores de byte). Esto convierte “abc ABC” en “61626320414243”. Sin el -p convertiría el texto a un formato de volcado hexadecimal tradicional orientado a palabras de 16 bits, que podría decirse que es más fácil de leer pero menos compacto y, por lo tanto, menos adecuado como formato de transmisión y un poco más difícil de revertir.

$ xxd -plain -revert text.hex test2.txt

Esto usa el -r o -revert Opción para funcionamiento inverso. los -plain La opción se usa nuevamente para indicar que el archivo hexadecimal de entrada está en formato simple.

Hago que el nombre del archivo de salida sea diferente del nombre del archivo original para que luego podamos comparar los resultados con el archivo original.

$ diff test.txt test2.txt
$ 

El comando diff no genera nada; esto significa que no hay diferencia entre el contenido del archivo original y el reconstituido.


Estoy cansado de buscar algunas cadenas de formato especial

Use alias o declare funciones en su .profile para crear mnemónicos para que no tenga que recordar o buscar en las páginas man.

o simplemente recuerda -plain y -revert.


Salida envuelta

Sí, hay caracteres de nueva línea en la salida. Quieres evitar eso. Puedes usar el -c o -cols opción para especificar la longitud que desea que tengan las líneas de salida para intentar evitar el ajuste de línea de la salida. -c 0 da la longitud predeterminada y la página del manual sugiere que 256 es el límite, pero parece funcionar más allá de eso.

$ xxd -plain -cols 9999 test.txt > test.hex
$ wc test.txt test.hex
  121   880  4603 test.txt
    1     1  9207 test.hex

los wc El comando wordcount nos dice cuántas líneas, palabras y caracteres hay en cada archivo.

Entonces, 121 líneas (880 palabras, 4603 bytes) de texto ASCII se codificaron como 1 línea de dígitos hexadecimales.

Aquí está la versión usando od utilidad (parte de coreutils paquete):

od -An < input | tr -dc '[:alnum:]'

Si entiendes que ha sido de utilidad este post, nos gustaría que lo compartas con el resto programadores así nos ayudas a dar difusión a nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *