Provided by: vim-common_7.2.148-2ubuntu2_i386 bug
 

NOME

        xxd - Produce esadecimale da un file binario o viceversa.
 

SINTASSI

        xxd -h[elp]
        xxd [opzioni] [input_file [output_file]]
        xxd -r[evert] [opzioni] [input_file [output_file]]
 

DESCRIZIONE

        xxd  crea  un’immagine  esadecimale  di  un dato file o dello "standard
        input".  Può anche ottenere da un’immagine esadecimale il file  binario
        originale.  Come uuencode(1) e uudecode(1) permette di trasmettere dati
        binari in una rapresentazione ASCII "a prova di email", ma ha anche  il
        vantaggio  di poter decodificare sullo "standard output".  Inoltre, può
        essere usato per effettuare delle modifiche (patch) a file binari.
 

OPZIONI

        Se non si specifica un input_file il programma  legge  dallo  "standard
        input".   Se input_file è specificato come il carattere `-’ , l’input è
        letto dallo "standard input".  Se non si specifica un output_file (o si
        mette  al  suo  posto il carattere `-’ ), i risultati sono inviati allo
        "standard output".
 
        Si noti che la scansione dei caratteri è "pigra", e non controlla oltre
        la  prima  lettera dell’opzione, a meno che l’opzione sia seguita da un
        parametro.  Gli spazi fra una singola lettera  di  opzione  e  il  cor‐
        rispondente parametro dopo di essa sono facoltativi.  I parametri delle
        opzioni  possono  essere  specificati  usando  la  notazione  decimale,
        esadecimale  oppure  ottale.  Pertanto -c8, -c 8, -c 010 e -cols 8 sono
        notazioni equivalenti fra loro.
 
        -a | -autoskip
               Richiesta di autoskip: Un singolo ’*’ rimpiazza  linee  di  zeri
               binari.  Valore predefinito: off.
 
        -b | -bits
               Richiesta  di  una  immagine binaria (cifre binarie), invece che
               esadecimale.  Questa opzione scrive un byte come otto cifre  "1"
               e  "0" invece di usare i numeri esadecimali. Ogni linea è prece‐
               duta da un indirizzo in esadecimale e seguita da una  decodifica
               ascii  (o  ebcdic). Le opzioni specificabili dalla linea comando
               -r, -p, -i non funzionano in questo modo.
 
        -c colonne | -cols colonne
               -c colonne  |  -cols  colonne  In  ogni  linea  sono  formattate
               <colonne>  colonne.  Valore predefinito 16 (-i: 12, -ps: 30, -b:
               6).  Valore massimo 256.
 
        -E | -EBCDIC
               Cambia la codifica della colonna di destra da  ASCII  a  EBCDIC.
               Questo  non  modifica  la  rappresentazione  esadecimale. Non ha
               senso specificare questa opzione in combinazione con  -r,  -p  o
               -i.
 
        -g bytes | -groupsize bytes
               Inserisci ogni <bytes> bytes di output (di due caratteri esadec‐
               imali o otto numeri binari ognuno) uno spazio bianco.   Specifi‐
               cando -g 0 i bytes di output non sono separati da alcuno spazio.
               <Bytes>  ha  come  valore  predefinito  2  in  modalità  normale
               [esadecimale] e 1 in modalità binaria.  Il raggruppamento non si
               applica agli stili "PostScript" e "include".
 
        -h | -help
               stampa un sommario dei comandi disponibili ed esce.   Non  viene
               fatto null’altro.
 
        -i | -include
               L’output è nello stile dei file "include" in C.  Viene preparata
               la definizione completa di un  "array"  [vettore],  dandogli  il
               nome  del  file  di input), tranne che nel caso in cui xxd legga
               dallo "standard input".
 
        -l lunghezza | -len lunghezza
               Il programma esce dopo aver scritto <lunghezza> bytes.
 
        -p | -ps | -postscript | -plain
               L’output è nello stile di un  dump  continuo  sotto  postscript.
               Noto anche come stile esadecimale semplice [plain].
 
        -r | -revert
               ricostruzione:   converte   (o   mette   una  patch)  a  partire
               dall’immagine esadecimale, creando [o modificando] il file bina‐
               rio.   Se non diretto allo "standard output", xxd scrive nel suo
               file di output in maniera continua, senza  interruzioni.   Usare
               la combinazione -r -p per leggere dump in stile esadecimale sem‐
               plice [plain], senza l’informazione di numero di linea  e  senza
               un  particolare tracciato di colonna.  Degli spazi o delle linee
               vuote possono essere inserite a piacere [e vengono ingorate].
 
        -seek distanza
               Usato  con  l’opzione  -r:  (ricostruzione),  <distanza>   viene
               aggiunta alla posizione nel file trovata nella immagine esadeci‐
               male.
 
        -s [+][-]seek
               Inizia  a  <seek>  bytes  assoluti  (o  relativi)  di   distanza
               all’interno  di  input_file.   + indica che il "seek" è relativo
               alla posizione corrente nel file "standard  input"  (non  signi‐
               ficativa quando non si legge da "standard input").  - indica che
               il "seek" dovrebbe posizionarsi  ad  quel  numero  di  caratteri
               dalla  fine dell’input (o se in combinazione con + : prime della
               posizione corrente nel file "standard input").  Se non si speci‐
               fica  una  opzione -s option, xxd inizia alla posizione corrente
               all’interno del file.
 
        -u     usa lettere esadecimali maiuscole. Il valore  predefinito  è  di
               usare lettere minuscole.
 
        -v | -version
               visualizza la stringa contenente la versione del programma.
 

ATTENZIONE

        xxd  -r  è  capace  di  operare  "magie" nell’utilizzare l’informazione
        "numero di linea".  Se sul file di output ci si può posizionare  usando
        la  "seek",  il numero di linea all’inizio di ogni riga esadecimale può
        essere non ordinato, delle linee possono mancare  delle  linee,  oppure
        esserci  delle  sovrapposizioni.  In simili casi xxd userà lseek(2) per
        raggiungere la posizione d’inizio.  Se il file di output  non  consente
        di  usare  "seek", sono permessi solo dei "buchi", che saranno riempiti
        con zeri binari.
 
        xxd -r non genera mai errori di specifica parametri.  I  parametri  non
        riconosciuti sono silenziosamente ignorati.
 
        Nel  modificare  immagini esadecimali, tenete conto che xxd -r salta il
        resto della linea, dopo aver letto abbastanza caratteri contenenti dati
        esadecimali (vedere opzione -c). Ciò implica pure che le modifiche alle
        colonne di caratteri stampabili ascii (o ebcdic) sono sempre  ignorate.
        La  ricostruzione  da  un  file  immagine esadecimale in stile semplice
        (postscript) con xxd -r -p non dipende dal numero corrretto di colonne.
        IN questo caso, qualsiasi cosa assomigli a una coppia di cifre esadeci‐
        mali è interpretata [e utilizzata].
 
        Notare la differenza fra
        % xxd -i file
        e
        % xxd -i < file
 
        xxd -s +seek può comportarsi in modo diverso da xxd -s  seek  ,  perché
        lseek(2)  è  usata  per  tornare indietro nel file di input.  Il ’+’ fa
        differenza se il file di input è lo "standard input", e se  la  pozione
        nel  file  di  "standard  input" non è all’inizio del file quando xxd è
        eseguito, con questo input.  I seguenti esempi  possono  contribuire  a
        chiarire il concetto (o ad oscurarlo!)...
 
        Riavvolge lo "standard input" prima di leggere; necessario perché ‘cat’
        ha già letto lo stesso file ["file"] fino  alla  fine  dello  "standard
        input".
        % sh -c ’cat > copia_normale; xxd -s 0 > copia_esadecimale’ < file
 
        Stampa  immagine  esadecimale dalla posizione file 0x480 (=1024+128) in
        poi.  Il segno ‘+’ vuol dire "rispetto alla posizione corrente", quindi
        il ‘128’ si aggiunge a 1k (1024) dove ‘dd’ si era fermato.
        % sh -c ’dd of=normale bs=1k count=1; xxd -s +128 > esadecimale’ < file
 
        Immagine esadecimale dalla posizione 0x100 ( = 1024-768 ) del  file  in
        avanti.
        %  sh  -c  ’dd  of=normale bs=1k count=1; xxd -s +-768 > esadecimale’ <
        file
 
        Comunque, questo capita raramente, e l’uso del ‘+’ di  rado.   L’autore
        preferisce monitorare il comportamento di xxd con strace(1) o truss(1),
        quando si usa l’opzione -s.
 

ESEMPI

        Stampa tutto tranne le prime tre linee (0x30 bytes esadecimali) di file
        % xxd -s 0x30 file
 
        Stampa 3 linee (0x30 bytes esadecimali) alla fine di file
        % xxd -s -0x30 file
 
        Stampa  120  bytes  come immagine esadecimale continua con 20 bytes per
        linea.
        % xxd -l 120 -ps -c 20 xxd.1
 
        2e54482058584420312022417567757374203139
        39362220224d616e75616c207061676520666f72
        20787864220a2e5c220a2e5c222032317374204d
        617920313939360a2e5c22204d616e2070616765
        20617574686f723a0a2e5c2220202020546f6e79
        204e7567656e74203c746f6e79407363746e7567
 
        Stampa i primi 120 bytes della pagina di manuale vim.1 a 12  bytes  per
        linea.
        % xxd -l 120 -c 12 xxd.1
 
        0000000: 2e54 4820 5858 4420 3120 2241  .TH XXD 1 "A
        000000c: 7567 7573 7420 3139 3936 2220  ugust 1996"
        0000018: 224d 616e 7561 6c20 7061 6765  "Manual page
        0000024:  2066  6f72  2078 7864 220a 2e5c   for xxd"...br 0000030: 220a
        2e5c 2220 3231 7374 204d  "..
        000003c: 6179 2031 3939 360a 2e5c 2220  ay 1996..
        0000048: 4d61 6e20 7061 6765 2061 7574  Man page aut
        0000054: 686f 723a 0a2e 5c22 2020 2020  hor:..
        0000060: 546f 6e79 204e 7567 656e 7420  Tony Nugent
        000006c: 3c74 6f6e 7940 7363 746e 7567  <tony@sctnug
 
        Visualizza la data dal file xxd.1
        % xxd -s 0x36 -l 13 -c 13 xxd.1
        0000036: 3231 7374 204d 6179 2031 3939 36  21st May 1996
 
        Copiare input_file su output_file premettendogli 100 bytes a 0x00.
        % xxd input_file | xxd -r -s 100 > output_file
 
        Modificare (patch) la data nel file xxd.1
        % echo ’0000037: 3574 68’ | xxd -r - xxd.1
        % xxd -s 0x36 -l 13 -c 13 xxd.1
        0000036: 3235 7468 204d 6179 2031 3939 36  25th May 1996
 
        Creare un file di 65537 tutto a 0x00, tranne che l’ultimo carattere che
        è una ’A’ (esadecimale 0x41).
        % echo ’010000: 41’ | xxd -r > file
 
        Stampa  una  immagine  esadecimale  del  file  di cui sopra con opzione
        autoskip.
        % xxd -a -c 12 file
        0000000: 0000 0000 0000 0000 0000 0000  ............
        *
        000fffc: 0000 0000 40                   ....A
 
        Crea un file di 1 byte che contiene il solo carattere ’A’.   Il  numero
        dopo  ’-r  -s’  viene aggiunto a quello trovato nel file; in pratica, i
        bytes precedenti non sono stampati.
        % echo ’010000: 41’ | xxd -r -s -0x10000 > file
 
        Usare xxd come filtro all’interno di un editor come vim(1) per ottenere
        una immagine esadecimale di una parte di file delimitata dai mark ‘a’ e
        ‘z’.
        :’a,’z!xxd
 
        Usare xxd  come  filtro  all’interno  di  un  editor  come  vim(1)  per
        ricostruire un pezzo di file binario da una immagine esadecimale delim‐
        itata dai mark ‘a’ e ‘z’.
        :’a,’z!xxd -r
 
        Usare xxd  come  filtro  all’interno  di  un  editor  come  vim(1)  per
        ricostruire una sola linea di file binario da una immagine esadecimale,
        Portare il cursore sopra la linea e battere:
        !!xxd -r
 
        Per leggere singoli charatteri da una linea seriale
        % xxd -c1 < /dev/term/b &
        % stty < /dev/term/b -echo -opost -isig -icanon min 1
        % echo -n foo > /dev/term/b
        Il programma può restituire questi codici di errore:
 
        0      nessun errore rilevato.
 
        -1     operazione non supportata ( xxd -r -i non ancora possible).
 
        1      errore durante la scansione parametri.
 
        2      problemi con il file di input.
 
        3      problemi con il file di output.
 
        4,5    posizione "seek" specificata non raggiungibile  all’interno  del
               file.
        uuencode(1), uudecode(1), patch(1)
 

AVVERTIMENTI

        La  stranezza  dello  strumento  rispecchia  la mente del suo creatore.
        Usate a vostro rischio e pericolo. Copiate  i  file.  Tracciate  l’ese‐
        cuzione.  Diventate un mago.
 

VERSIONE

        Questa pagina di manuale documenta la versione 1.7 di xxd.
 

AUTORE

        (c) 1990-1997 Juergen Weigert
        <jnweiger@informatik.uni-erlangen.de>
 
        Distribuite liberamente ed attribuitemi il credito,
        fate soldi e condivideteli con me
        perdete soldi e non venite a chiederli a me.
 
        Pagina di manuale messa in piedi da Tony Nugent
        <tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
        Piccole modifiche di Bram Moolenaar.  Modificato da Juergen Weigert.