xxd
Questo è il comando xxd che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS
PROGRAMMA:
NOME
xxd - fai un hexdump o fai il contrario.
SINOSSI
xxd -aiuto]
xxd [opzioni] [file in entrata [file in uscita]]
xxd -r[evert] [opzioni] [infile [outfile]]
DESCRIZIONE
xxd crea un dump esadecimale di un determinato file o input standard. Può anche convertire un dump esadecimale
torna alla sua forma binaria originale. Piace uencode(1) e uudecode(1) consente il
trasmissione di dati binari in una rappresentazione ASCII `mail-safe', ma ha il vantaggio
di decodifica allo standard output. Inoltre, può essere utilizzato per eseguire patch di file binari.
VERSIONI
Se no infilare viene fornito, viene letto lo standard input. Se infilare è specificato come `-' carattere,
quindi l'input viene preso dall'input standard. se no file di uscita è dato (o un `-'il carattere è dentro
al suo posto), i risultati vengono inviati allo standard output.
Nota che viene utilizzato un parser "pigro" che non controlla più della prima opzione
lettera, a meno che l'opzione non sia seguita da un parametro. Spazi tra una singola opzione
la lettera e il suo parametro sono facoltativi. I parametri delle opzioni possono essere specificati in decimale,
notazione esadecimale o ottale. così -c8, -c 8, -c 010 e -col 8 sono tutti equivalenti.
-a | -salto automatico
toggle autoskip: un singolo '*' sostituisce le righe nulle. Disattivato per impostazione predefinita.
-b | -bit
Passa al dump dei bit (cifre binarie), piuttosto che al dump esadecimale. Questa opzione scrive
ottetti come otto cifre "1" e "0" invece di un normale dump esadecimale. Ogni
la riga è preceduta da un numero di riga in esadecimale e seguita da un ascii (o
ebcdic) rappresentazione. Le opzioni della riga di comando -r, -p, -i non funzionano con questo
modalità.
-c cols | -col cols
formatocols> ottetti per riga. Predefinito 16 (-i: 12, -ps: 30, -b: 6). Massimo 256.
-E | -EBCDIC
Cambia la codifica dei caratteri nella colonna di destra da ASCII a EBCDIC. Questo
non cambia la rappresentazione esadecimale. L'opzione non ha senso in
combinazioni con -r, -p o -i.
-e Passa al dump esadecimale little-endian. Questa opzione tratta i gruppi di byte come parole in
ordine dei byte little-endian. Il raggruppamento predefinito di 4 byte può essere modificato utilizzando -g.
Questa opzione si applica solo al dump esadecimale, lasciando la rappresentazione ASCII (o EBCDIC)
invariato. Le opzioni della riga di comando -r, -p, -i non funzionano con questa modalità.
-g bytes | -dimensione del gruppo bytes
separare l'output di ognibytes> byte (due caratteri esadecimali o otto cifre-bit
ciascuno) da uno spazio bianco. Specificare -g 0 per sopprimere il raggruppamento.Byte> il valore predefinito è 2
in modalità normale, 4 in modalità little-endian e 1 in modalità bit. Il raggruppamento no
applicare al poscritto o includere lo stile.
-h | -Aiuto
stampa un riepilogo dei comandi disponibili ed esce. Non viene eseguito alcun dump esadecimale.
-i | -includere
l'output in C include lo stile del file. Viene scritta una definizione di array statico completo
(chiamato dopo il file di input), a meno che xxd non legga da stdin.
-l len | -len len
fermati dopo aver scrittolen> ottetti.
-o offset
Inseriscioffset> alla posizione del file visualizzato.
-p | -PS | -poscritto | -semplice
output in stile postscript hexdump continuo. Conosciuto anche come semplice stile hexdump.
-r | -ripristinare
operazione inversa: converte (o corregge) hexdump in binario. Se non scrivi a
stdout, xxd scrive nel suo file di output senza troncarlo. Usa la combinazione
-r -p per leggere semplici dump esadecimali senza informazioni sul numero di riga e senza a
particolare disposizione delle colonne. Sono consentiti spazi bianchi aggiuntivi e interruzioni di riga
ovunque.
-cercare offset
Se usato dopo -r: ripristina conoffset> aggiunto alle posizioni dei file trovate in hexdump.
-s [+][-]cerca
iniziare acercare> byte ass. (o rel.) infile offset. + indica che la ricerca è
relativo alla posizione del file stdin corrente (senza significato quando non si legge da
standarddin). - indica che la ricerca dovrebbe essere quel numero di caratteri dalla fine di
l'ingresso (o se abbinato a +: prima della posizione del file stdin corrente). Privo di
-s, xxd inizia dalla posizione del file corrente.
-u utilizzare lettere esadecimali maiuscole. L'impostazione predefinita è minuscola.
-v | -versione
mostra la stringa della versione.
AVVERTENZE
xxd -r ha qualche magia incorporata durante la valutazione delle informazioni sul numero di riga. Se l'uscita
file è ricercabile, allora i numeri di lino all'inizio di ogni riga di dump esadecimale potrebbero essere fuori
ordine, le righe potrebbero essere mancanti o sovrapposte. In questi casi xxd lo farà cerco(2) al prossimo
posizione. Se il file di output non è ricercabile, sono consentiti solo gli spazi vuoti, che verranno riempiti
per byte nulli.
xxd -r non genera mai errori di analisi. La spazzatura viene silenziosamente ignorata.
Quando si modificano i dump esadecimali, tenere presente che xxd -r salta tutto sulla riga di input dopo
leggendo abbastanza colonne di dati esadecimali (vedi opzione -c). Questo significa anche che cambia
alle colonne stampabili ascii (o ebcdic) vengono sempre ignorate. Ripristino di una pianura (o
postscript) lo stile hexdump con xxd -r -p non dipende dal numero corretto di colonne.
Qui viene interpretato tutto ciò che sembra una coppia di cifre esadecimali.
Nota la differenza tra
% xxd -i filetto
e
% xxd -i < filetto
xxd -s +cerca potrebbe essere diverso da xxd -s cercare, come cerco(2) viene utilizzato per "riavvolgere" l'input. UN
'+' fa la differenza se la sorgente di input è stdin e se la posizione del file di stdin non lo è
all'inizio del file nel momento in cui xxd viene avviato e dato il suo input. Il seguente
gli esempi possono aiutare a chiarire (o confondere ulteriormente!)...
Riavvolgi lo stdin prima di leggere; necessario perché il `gatto' ha già letto fino alla fine di
standard.
% sh -c "gatto > semplice_copia; xxd -s 0 > copia_esadecimale" < filetto
Hexdump dalla posizione del file 0x480 (=1024+128) in poi. Il segno `+' significa "relativo al
posizione corrente", quindi il `128' si aggiunge al 1k dove dd era stato interrotto.
% sh -c "dd di=snippet_semplice b=1k conteggio=1; xxd -s +128 > hex_snippet" < filetto
Dump esadecimale dalla posizione del file 0x100 ( = 1024-768) in poi.
% sh -c "dd di=snippet_semplice b=1k conteggio=1; xxd -s + -768 > hex_snippet" < filetto
Tuttavia, questa è una situazione rara e l'uso di `+' è raramente necessario. L'autore preferisce
per monitorare l'effetto di xxd con straccio(1) o travatura(1), ogni volta che viene utilizzato -s.
ESEMPI
Stampa tutto tranne le prime tre righe (hex 0x30 byte) di filetto.
% xxd -s 0x30 filetto
Stampa 3 righe (hex 0x30 byte) dalla fine di filetto.
% xxd -s -0x30 filetto
Stampa 120 byte come dump esadecimale continuo con 20 ottetti per riga.
% xxd -l 120 -PS -c 20 xxd.1
2e54482058584420312022417567757374203139
39362220224d616e75616c207061676520666f72
20787864220a2e5c220a2e5c222032317374204d
617920313939360a2e5c22204d616e2070616765
20617574686f723a0a2e5c2220202020546f6e79
204e7567656e74203c746f6e79407363746e7567
Eseguire il dump esadecimale dei primi 120 byte di questa pagina man con 12 ottetti per riga.
% xxd -l 120 -c 12 xxd.1
0000000: 2e54 4820 5858 4420 3120 2241 .TH XXD 1 "LA
000000c: 7567 7573 7420 3139 3936 2220 agosto 1996"
0000018: 224d 616e 7561 6c20 7061 6765 "Pagina manuale
0000024: 2066 6f72 2078 7864 220a 2e5c per xxd"..\
0000030: 220a 2e5c 2220 3231 7374 204d "..\" 21° M
000003c: 6179 2031 3939 360a 2e5c 2220 aa 1996..\"
0000048: 4d61 6e20 7061 6765 2061 7574 Pagina man aut
0000054: 686f 723a 0a2e 5c22 2020 2020 ore:..\"
0000060: 546f 6e79 204e 7567 656e 7420 Tony Nugent
000006c: 3c74 6f6e 7940 7363 746e 7567
Visualizza solo la data dal file xxd.1
% xxd -s 0x36 -l 13 -c 13 xxd.1
0000036: 3231 7374 204d 6179 2031 3939 36 21 maggio 1996
Copia file di input a file di uscita e anteponi 100 byte di valore 0x00.
% xxd file di input | xxd -r -s 100 > file di uscita
Patch la data nel file xxd.1
% eco "0000037: 3574 68 " | xxd -r - xxd.1
% xxd -s 0x36 -l 13 -c 13 xxd.1
0000036: 3235 7468 204d 6179 2031 3939 36 25 maggio 1996
Crea un file di 65537 byte con tutti i byte 0x00, tranne l'ultimo che è 'A' (esadecimale
0x41).
% eco "010000: 41 " | xxd -r > filetto
Eseguire il dump esadecimale di questo file con autoskip.
% xxd -a -c 12 filetto
0000000: 0000 0000 0000 0000 0000 0000 ............
*
000ffffc: 0000 0000 40 ....A
Crea un file da 1 byte contenente un singolo carattere 'A'. Il numero dopo '-r -s' si aggiunge a
i numeri di lino trovati nel file; in effetti, i byte iniziali vengono soppressi.
% eco "010000: 41 " | xxd -r -s -0x10000 > filetto
Usa xxd come filtro all'interno di un editor come vim(1) eseguire il dump esadecimale di una regione contrassegnata tra "a"
e `z'.
:'a,'z!xxd
Usa xxd come filtro all'interno di un editor come vim(1) per recuperare un dump esadecimale binario contrassegnato
tra "a" e "z".
:'a,'z!xxd -r
Usa xxd come filtro all'interno di un editor come vim(1) per recuperare una riga di un dump esadecimale.
Sposta il cursore sulla riga e digita:
!!xxd -r
Leggere singoli caratteri da una linea seriale
% xxd -c1 < /sviluppo/termine/b &
% sty < /sviluppo/termine/b -eco -opost -isig -Icano verbale 1
% eco -n foo > /sviluppo/termine/b
RITORNO VALORI
Vengono restituiti i seguenti valori di errore:
0 nessun errore riscontrato.
-1 operazione non supportata ( xxd -r -i ancora impossibile).
1 errore durante l'analisi delle opzioni.
2 problemi con il file di input.
3 problemi con il file di output.
4,5 la posizione di ricerca desiderata non è raggiungibile.
Usa xxd online utilizzando i servizi onworks.net