hexdump -ve '1/1 "%02x"'
xxd -p | tr -d '\n'
Pokud vás unavuje psát toto pokaždé vytvořte alias.
Jak snadno převést do/z obyčejných strojově čitelných hexadecimálních dat
Stručně.
$ xxd -plain test.txt > test.hex $ xxd -plain -revert test.hex test2.txt $ diff test.txt test2.txt $
Vysvětlení:
$ xxd -plain test.txt > test.hex
Tím se zapíše hexadecimální kódování dat v test.txt do nového souboru test.hex.The -p
nebo -plain
volba umožňuje xxd používat "prostý" hexadecimální formát bez mezer mezi dvojicemi hexadecimálních číslic (tj. bez mezer mezi hodnotami bajtů). Tím se "abc ABC" převede na "61626320414243". Bez -p
převedl by text do 16bitového, slovně orientovaného tradičního hexdump formátu, který je pravděpodobně snáze čitelný, ale méně kompaktní, a proto méně vhodný jako přenosový formát a poněkud obtížnější zpětný chod.
$ xxd -plain -revert text.hex test2.txt
Toto používá -r
nebo -revert
možnost zpětného chodu. -plain
volba se znovu používá k označení, že vstupní hex soubor je v prostém formátu.
Výstupní název souboru se liší od původního souboru, abychom mohli později porovnat výsledky s původním souborem.
$ diff test.txt test2.txt
$
Příkaz diff nevypíše nic – to znamená, že mezi původním a rekonstruovaným obsahem souboru není žádný rozdíl.
Už mě nebaví kopat do některých řetězců speciálního formátu
Použijte alias nebo deklarujte funkce ve svém profilu .profile k vytvoření mnemotechnických pomůcek, abyste si nemuseli pamatovat nebo hloubat v manuálových stránkách.
nebo si jen zapamatujte -plain
a -revert
.
Zabalený výstup
Ano, ve výstupu jsou znaky nového řádku. Tomu se chcete vyhnout. Můžete použít -c
nebo -cols
možnost určit, jak dlouhé mají být výstupní řádky, aby se zabránilo zalamování výstupu. -c 0
dává výchozí délku a manuálová stránka naznačuje, že limit je 256, ale zdá se, že to funguje i mimo něj.
$ xxd -plain -cols 9999 test.txt > test.hex
$ wc test.txt test.hex
121 880 4603 test.txt
1 1 9207 test.hex
wc
wordcount nám říká, kolik řádků, slov a znaků je v každém souboru.
Takže 121 řádků (880 slov, 4603 bajtů) textu ASCII bylo zakódováno jako 1 řádek hexadecimálních číslic.
Zde je verze používající od
nástroj (část coreutils
balíček):
od -An < input | tr -dc '[:alnum:]'