xxd(1): Skillnad mellan sidversioner

Från Wiki.linux.se -Linux wikipedia på Svenska.
Hoppa till navigering Hoppa till sök
(Skapade sidan med '= xxd(1) = == NAMN == '''xxd''' — skapa en hexdump eller göra det omvända == SYNOPSIS == <code>xxd -h[elp]</code> <code>xxd [alternativ] [infil [utfil]]</code> <code>xxd -r[evert] [alternativ] [infil [utfil]]</code> == BESKRIVNING == '''xxd''' skapar en hexdump av en given fil eller standard in. Det kan också konvertera en hexdump tillbaka till sin ursprungliga binära form. Liksom uuencode(1) och uudecode(1) tillåter det överföring av binär data i...')
 
 
(En mellanliggande sidversion av samma användare visas inte)
Rad 224: Rad 224:


== SE ÄVEN ==
== SE ÄVEN ==
[[uuencode(1)]], [[uudecode(1)]], [[patch(1)]]
[[uuencode(1)]],
 
[[uudecode(1)]],
 
[[patch(1)]]


== VARNINGAR ==
== VARNINGAR ==
Rad 245: Rad 249:


Små ändringar av Bram Moolenaar. Redigerad av Juergen Weigert.
Små ändringar av Bram Moolenaar. Redigerad av Juergen Weigert.
= Sidslut =
Orginalhemsidan på Engelska https://linux.die.net/man/1/xxd
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
<BR><BR>Tack till [https://Pc-service.se PC Service] som har  sponsrat [https://www.linux.se Linux.se] med webbhotell.
[[Kategori:Linuxmanual grupp 1]]
[[Kategori:Linuxmanual]]

Nuvarande version från 18 april 2026 kl. 10.12

xxd(1)

NAMN

xxd — skapa en hexdump eller göra det omvända

SYNOPSIS

xxd -h[elp]

xxd [alternativ] [infil [utfil]]

xxd -r[evert] [alternativ] [infil [utfil]]

BESKRIVNING

xxd skapar en hexdump av en given fil eller standard in. Det kan också konvertera en hexdump tillbaka till sin ursprungliga binära form. Liksom uuencode(1) och uudecode(1) tillåter det överföring av binär data i en ASCII-representation som är säker för e-post, men har fördelen att kunna avkoda till standard ut. Dessutom kan det användas för att göra patchning av binärfiler.

ALTERNATIV

Om ingen infil anges läses standard in. Om infil anges som tecknet - tas indata från standard in. Om ingen utfil anges, eller om - används i dess ställe, skickas resultatet till standard ut.

Observera att en ”lat” parser används som inte kontrollerar mer än den första alternativbokstaven, om inte alternativet följs av en parameter. Blanksteg mellan en enskild alternativbokstav och dess parameter är valfria. Parametrar till alternativ kan anges i decimal, hexadecimal eller oktal notation. Därför är -c8, -c 8, -c 010 och -cols 8 likvärdiga.

-a | -autoskip
Växla autoskip. En ensam * ersätter rader med bara nollbyte. Avstängt som standard.
-b | -bits
Växla till dump i bitar i stället för hex. Detta alternativ skriver oktetter som åtta siffror med 1 och 0 i stället för en vanlig hex-dump. Varje rad föregås av ett radnummer i hexadecimal form och följs av en ASCII- eller EBCDIC-representation. Växlarna -r, -p och -i fungerar inte med detta läge.
-c cols | -cols cols
Formatera <cols> oktetter per rad. Standard är 16 (-i: 12, -ps: 30, -b: 6). Maxvärde är 256.
-E | -EBCDIC
Ändra teckenkodningen i den högra kolumnen från ASCII till EBCDIC. Detta ändrar inte den hexadecimala representationen. Alternativet saknar betydelse tillsammans med -r, -p eller -i.
-g bytes | -groupsize bytes
Dela upp utdata genom att separera varje grupp om <bytes> byte med ett blanksteg. Ange -g 0 för att undertrycka gruppering. Standard är 2 i normalt läge och 1 i bitläge. Gruppering gäller inte i postscript- eller include-stil.
-h | -help
Skriv en sammanfattning av tillgängliga kommandon och avsluta. Ingen hexdump utförs.
-i | -include
Skriv utdata i stil med en C-include-fil. En fullständig statisk arraydefinition skrivs ut, namngiven efter indatafilen, om inte xxd läser från standard in.
-l len | -len len
Sluta efter att ha skrivit <len> oktetter.
-p | -ps | -postscript | -plain
Skriv utdata i kontinuerlig hexdumpstil för postscript. Kallas också vanlig hexdumpstil.
-r | -revert
Omvänd operation: konvertera eller patcha hexdump till binärt. Om utdata inte skrivs till standard ut skriver xxd till utdatafilen utan att trunkera den. Kombinationen -r -p används för att läsa vanliga hex-dumpar utan radnummer och utan särskild kolumnlayout. Extra blanktecken och radbrytningar tillåts överallt.
-seek offset
När det används efter -r: gör återställning med <offset> adderat till filpositionerna som hittas i hexdumpen.
-s [+][-]seek
Börja vid <seek> byte absolut eller relativ filposition i indatafilen. + betyder att positionen är relativ till aktuell position i standard in. - betyder att positionen ska vara så många tecken från slutet av indata, eller om det kombineras med +, före aktuell position i standard in. Utan -s börjar xxd vid aktuell filposition.
-u
Använd stora hexbokstäver. Standard är små bokstäver.
-v | -version
Visa versionssträng.

VARNINGAR

xxd -r har viss inbyggd magi när radnummerinformation tolkas. Om utdatafilen är sökbar kan radnumren i början av varje hexdumprad vara i oordning, rader kan saknas eller överlappa. I dessa fall kommer xxd att använda lseek(2) till nästa position. Om utdatafilen inte är sökbar tillåts bara luckor, som då fylls med nollbyte.

xxd -r genererar aldrig tolkningsfel. Skräp hoppas över utan varning.

Vid redigering av hexdumpar bör man notera att xxd -r hoppar över allt på inmatningsraden efter att ha läst tillräckligt många kolumner med hexadecimal data, se alternativet -c. Det betyder också att ändringar i de utskrivbara ASCII- eller EBCDIC-kolumnerna alltid ignoreras. Återställning av en vanlig eller postscript-stil hexdump med xxd -r -p beror inte på korrekt antal kolumner. Allt som ser ut som ett par hexsiffror tolkas då.

Observera skillnaden mellan:

% xxd -i file

och

% xxd -i < file

xxd -s +seek kan skilja sig från xxd -s seek, eftersom lseek(2) används för att ”spola tillbaka” indata. Ett + gör skillnad om inmatningskällan är standard in och dess filposition inte står i början av filen när xxd startas.

Följande exempel kan hjälpa till att förtydliga detta:

Spola tillbaka standard in före läsning; detta behövs eftersom cat redan har läst till slutet av standard in.

% sh -c "cat > plain_copy; xxd -s 0 > hex_copy" < file

Hexdump från filposition 0x480 (= 1024 + 128) och framåt. +-tecknet betyder ”relativt till den aktuella positionen”, så 128 läggs till den 1k-position där dd slutade.

% sh -c "dd of=plain_snippet bs=1k count=1; xxd -s +128 > hex_snippet" < file

Hexdump från filposition 0x100 (= 1024 - 768).

% sh -c "dd of=plain_snippet bs=1k count=1; xxd -s +-768 > hex_snippet" < file

Detta är dock en ovanlig situation och användning av + behövs sällan. Författaren föredrar att övervaka effekten av xxd med strace(1) eller truss(1) när -s används.

EXEMPEL

Skriv ut allt utom de tre första raderna, hex 0x30 byte, i file.

% xxd -s 0x30 file

Skriv ut 3 rader, hex 0x30 byte, från slutet av file.

% xxd -s -0x30 file

Skriv ut 120 byte som kontinuerlig hexdump med 20 oktetter per rad.

% xxd -l 120 -ps -c 20 xxd.1
2e54482058584420312022417567757374203139
39362220224d616e75616c207061676520666f72
20787864220a2e5c220a2e5c222032317374204d
617920313939360a2e5c22204d616e2070616765
20617574686f723a0a2e5c2220202020546f6e79
204e7567656e74203c746f6e79407363746e7567

Hexdumpa de första 120 bytena i denna manualsida med 12 oktetter per rad.

% 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"..\
0000030: 220a 2e5c 2220 3231 7374 204d "..\" 21st M
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

Visa bara datumet från filen xxd.1.

% xxd -s 0x36 -l 13 -c 13 xxd.1
0000036: 3231 7374 204d 6179 2031 3939 36 21st May 1996

Kopiera input_file till output_file och lägg till 100 byte med värdet 0x00 i början.

% xxd input_file | xxd -r -s 100 > output_file

Patcha datumet i filen 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

Skapa en fil på 65537 byte där alla byte är 0x00 utom den sista, som är A (0x41).

% echo "010000: 41" | xxd -r > file

Hexdumpa denna fil med autoskip.

% xxd -a -c 12 file
0000000: 0000 0000 0000 0000 0000 0000 ............
*
000fffc: 0000 0000 40 ....A

Skapa en fil på 1 byte som innehåller ett enda tecken A. Talet efter -r -s läggs till radnumren som hittas i filen; i praktiken undertrycks de inledande bytena.

% echo "010000: 41" | xxd -r -s -0x10000 > file

Använd xxd som filter i en editor som vim(1) för att hexdumpa ett område markerat mellan a och z.

:'a,'z!xxd

Använd xxd som filter i en editor som vim(1) för att återställa en binär hexdump markerad mellan a och z.

:'a,'z!xxd -r

Använd xxd som filter i en editor som vim(1) för att återställa en rad av en hexdump. Flytta markören till raden och skriv:

!!xxd -r

Läs enstaka tecken från en seriell linje.

% xxd -c1 < /dev/term/b &
% stty < /dev/term/b -echo -opost -isig -icanon min 1
% echo -n foo > /dev/term/b

RETURVÄRDEN

Följande felvärden returneras:

  1. inga fel uppstod
  2. -1 — operationen stöds inte, till exempel är xxd -r -i fortfarande omöjligt
  3. fel vid tolkning av alternativ
  4. problem med indatafilen
  5. problem med utdatafilen
  6. 4, 5 — önskad seek-position kan inte nås

SE ÄVEN

uuencode(1),

uudecode(1),

patch(1)

VARNINGAR

Verktygets märklighet matchar dess skapares hjärna. Används helt på egen risk. Kopiera filer. Spåra det. Bli en trollkarl.

VERSION

Denna manualsida dokumenterar xxd version 1.7.

FÖRFATTARE

(c) 1990–1997 av Juergen Weigert

<jnweiger@informatik.uni-erlangen.de>

Distribuera fritt och ge mig erkännande, tjäna pengar och dela med mig, förlora pengar och fråga mig inte.

Manualsidan påbörjades av Tony Nugent

<tony@sctnugen.ppp.gu.edu.au>
<T.Nugent@sct.gu.edu.au>

Små ändringar av Bram Moolenaar. Redigerad av Juergen Weigert.

Sidslut

Orginalhemsidan på Engelska https://linux.die.net/man/1/xxd Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till PC Service som har sponsrat Linux.se med webbhotell.