GNU/Linux >> Tutoriales Linux >  >> Linux

Convierta el modo binario al modo de texto y la opción inversa

od -An -vtx1 Check.tar > Check.txt

Necesitas -v o od condensará secuencias de bytes idénticos.

Para el reverso:

LC_ALL=C tr -cd 0-9a-fA-F < Check.txt | xxd -r -p > Check.tar

O:

perl -ape '$_=pack "(H2)*", @F' Check.txt > Check.tar

Si su propósito es transferir archivos a través de un canal que solo admite texto ASCII, existen herramientas dedicadas para eso como uuencode :

tar cf - myfiles.* | xz | uuencode myfiles.tar.xz | that-channel 

Y para recuperar esos archivos en el otro extremo:

uudecode < file.uu

recrearía myfiles.tar.xz .

O:

uudecode -o - < file.uu | xz -d | tar xf -

Para extraer los archivos.


Respondiendo a la parte X de este problema XY, le recomendaría que investigue la razón por la que sus transferencias de archivos binarios no se transfieren correctamente.

Si resulta que el motivo es que no tiene una ruta de datos limpia de 8 bits, puede usar las herramientas existentes que se crearon para manejar esta situación, como base64 o incluso uuencode . Antiguo pero aún muy efectivo.

tar czvf - /etc/h* | base64 >/tmp/tar.tgz.b64
ls -l /tmp/tar.tgz.b64
-rw-r--r-- 1 root root 7364 May 26 11:52 /tmp/tar.tgz.b64
...
base64 -d /tmp/tar.tgz.b64 | tar tzvf -

o

tar czvf - /etc/h* | uuencode - >/tmp/tar.tgz.uue
ls -l /tmp/tar.tgz.uue
-rw-r--r-- 1 root root 7530 May 26 11:51 /tmp/tar.tgz.uue
...
uudecode /tmp/tar.tgz.uue | tar xzvf -

En mi caso no tenía xxd ni uudecode en el dispositivo remoto pero sí bash. Terminé con lo siguiente:

Convierte de binario a txt con:

od -An -vtx1 myfile.bin > myfile.txt

Luego vuelva a convertir de txt a binario con:

while read p; do
    IFS=' ' read -r -a array <<< "$p" 
    for index in "${!array[@]}" 
    do
        echo -en "\x${array[index]}" 
    done
done < myfile.txt > myfile.bin

Linux
  1. ¿Convertir todo el texto de mayúsculas a minúsculas y viceversa?

  2. Usar find y tar con archivos con caracteres especiales en el nombre

  3. Cómo convertir un archivo de texto de Shift JIS a UTF-8 y viceversa desde la terminal

  4. ¿Qué podría causar que el comando de archivo en Linux informe un archivo de texto como datos binarios?

  5. ¿Cómo puedo convertir datos de texto de dos valores a binario (representación de bits)?

Copie y pegue texto en la terminal en Ubuntu 20.04

Copie y pegue texto en la terminal en Ubuntu 22.04

Haga ping a varios servidores y muestre la salida en la interfaz de usuario de texto superior

Los mejores editores de texto de Linux:los 20 editores de texto y HTML revisados

convertir archivo de texto de bits a archivo binario

convertir una cadena hexadecimal a binario y enviar con netcat