GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Konvertieren Sie den Binärmodus in den Textmodus und die umgekehrte Option

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

Sie benötigen -v oder od komprimiert Sequenzen identischer Bytes.

Umgekehrt:

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

Oder:

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

Wenn Sie Dateien über einen Kanal übertragen möchten, der nur ASCII-Text unterstützt, dann gibt es dafür spezielle Tools wie uuencode :

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

Und um diese Dateien am anderen Ende wiederherzustellen:

uudecode < file.uu

würde myfiles.tar.xz neu erstellen .

Oder:

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

Um die Dateien zu extrahieren.


Um den X-Teil dieses XY-Problems zu beantworten, würde ich empfehlen, dass Sie untersuchen, warum Ihre Binärdateiübertragungen nicht richtig übertragen werden.

Wenn sich herausstellt, dass der Grund darin liegt, dass Sie keinen sauberen 8-Bit-Datenpfad haben, können Sie vorhandene Tools verwenden, die für diese Situation erstellt wurden, z. B. base64 oder sogar uuencode . Alt, aber immer noch sehr effektiv.

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 -

oder

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 -

In meinem Fall hatte ich kein xxd oder uudecode auf dem Remote-Gerät, aber ich hatte bash. Am Ende kam ich zu folgendem Ergebnis:

Konvertieren Sie von binär nach txt mit:

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

Konvertieren Sie dann zurück von txt zu binär mit:

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. Warum (und wie) hat die Verwendung von Cat auf Binärdateien das Terminal durcheinander gebracht?

  2. Wie komprimiert und extrahiert man Dateien mit dem tar-Befehl unter Linux?

  3. Verwendung von find und tar mit Dateien mit Sonderzeichen im Namen

  4. So konvertieren Sie eine Textdatei von Shift JIS in UTF-8 und zurück vom Terminal

  5. Konvertieren Sie eine Textdatei von Bits in eine Binärdatei

Kopieren Sie Text und fügen Sie ihn in das Terminal unter Ubuntu 20.04 ein

Kopieren Sie Text und fügen Sie ihn in das Terminal unter Ubuntu 22.04 ein

Pingen Sie mehrere Server an und zeigen Sie die Ausgabe in einer Top-ähnlichen Text-Benutzeroberfläche an

Beste Linux-Texteditoren:Die 20 überprüften Text- und HTML-Editoren

Was könnte dazu führen, dass der Dateibefehl in Linux eine Textdatei als Binärdaten meldet?

Konvertieren Sie einen Hex-String in Binär und senden Sie ihn mit netcat