Uscita XXD senza interruzioni di riga


13

Posso dire xxddi non stampare alcuna interruzione di riga nel suo output e avere il mio dump come una linea continua?

[user@localhost] : ~ $ echo -n "this is a long line and xxd is going to take multiple lines to print it" | xxd -p
746869732069732061206c6f6e67206c696e6520616e6420787864206973
20676f696e6720746f2074616b65206d756c7469706c65206c696e657320
746f207072696e74206974

5
Si potrebbe semplicemente usare trper cancellare le nuove righe, ad esempio... | xxd -p | tr -d \\n
don_crissti

Dipende da cosa ne hai bisogno, ma un'opzione utile di xxdè che ignora gli spazi bianchi per il retro -rdel suo codice di posta / -pdump normale (o qualsiasi esadecimale semplice per quella materia). per esempio. La seguente riga si conclude con \n, ma l'output inverso è esattamente ciò che è stato immesso: echo {1..14} | xxd -p | xxd -p -rproduce output: 1 2 3 4 5 6 7 8 9 10 11 12 13 14\n - \nè dalecho
Peter.O

1
Puoi anche usare al hexdump -v -e '/1 "%02X"'posto di xxd.
Dirkt

Risposte:


15

Ciò di cui hai bisogno è l'opzione -c.

# echo -n "this is a long line and xxd will print it as one line" | xxd -p -c 1000000

746869732069732061206c6f6e67206c696e6520616e64207878642077696c6c207072696e74206974206173206f6e65206c696e65

Ecco alcune informazioni dalla documentazione :

-c cols | -colette ottetti in formato cols per riga. Predefinito 16 (-i: 12, -ps: 30, -b: 6). Max 256.

La documentazione dice che il valore massimo per il parametro "c" è 256, ma ho provato valori maggiori e ha funzionato. Controlla:

# xxd -c 1000000 -p -l 1000000 /dev/urandom | wc -c
2000001

Qui scarico un milione di byte da / dev / random e ottengo una stringa di 2 milioni + 1 caratteri. Ogni byte da / dev / random è rappresentato da 2 caratteri e il byte aggiuntivo è la nuova riga finale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.