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.