blob: 877b7e45fc5fa30287c9a514182b4026b85a6a8f [file] [log] [blame]
Bram Moolenaar899dddf2006-03-26 21:06:50 +00001.TH XXD 1 "Sierpieñ 1996" "Strona podrêcznika dla xxd"
2.\"
3.\" 21st May 1996
4.\" Man page author:
5.\" Tony Nugent <tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
6.\" Changes by Bram Moolenaar <Bram@vim.org>
7.SH NAZWA
8.I xxd
9\- zrzut pliku do hex lub odwrotnie
10.SH SYNOPSIS
11.B xxd
12\-h[elp]
13.br
14.B xxd
15[opcje] [plik_we [plik_wy]]
16.br
17.B xxd
18\-r[evert] [opcje] [plik_we [plik_wy]]
19.SH OPIS
20.I xxd
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +010021tworzy zrzut heksowy podanego pliku lub standardowego wej¶cia.
Bram Moolenaar899dddf2006-03-26 21:06:50 +000022Mo¿e tak¿e przetworzyæ zrzut heksowy z powrotem do oryginalnej,
23binarnej formy.
24Podobnie jak
25.BR uuencode (1)
26i
27.BR uudecode (1)
28pozwala na przekazanie danych binarnych w bezpiecznej w poczcie formie
29ASCII, ale ma zalety dekodowania na standardowe wyj¶cie.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +010030Ponadto mo¿na go u¿yæ do binarnego ³atania plików.
Bram Moolenaar899dddf2006-03-26 21:06:50 +000031.SH OPCJE
32Je¶li nie podano
33.I plik_we
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +010034xxd czyta ze standardowego wej¶cia.
Bram Moolenaar899dddf2006-03-26 21:06:50 +000035Je¶li okre¶lono
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +010036.I plik_we
Bram Moolenaar899dddf2006-03-26 21:06:50 +000037jako znak
38.RB \` \- '
39wtedy dane wej¶ciowe czytane s± ze standardowego wej¶cia.
40Je¶li nie podano
41.I plik_wy
42(lub podano jako
43.RB \` \- '
44), wyniki s± wysy³ane na standardowe wyj¶cie.
45.PP
46Pamiêtaj, ¿e u¿yty zosta³ "leniwy" parser, który nie sprawdza wiêcej
47ni¿ pierwszej litery opcji (o ile ta nie zosta³a obdarzona
48parametrem). Spacje miêdzy jedno literowymi opcjami i ich parametrami
49s± opcjonalne. Parametry opcji mog± byæ okre¶lone w notacji dziesiêtnej,
50heksadecymalej lub oktalnej.
51St±d
52.BR \-c8 ,
53.BR "\-c 8" ,
54.B \-c 010
55i
56.B \-cols 8
57s± sobie równowa¿ne.
58.PP
59.TP
60.IR \-a " | " \-autoskip
61prze³±cza autoskip: pojedyncza '*' zastêpuje linie nul. Domy¶lnie
62wy³±czone.
63.TP
64.IR \-b " | " \-bits
65Prze³±cza do zrzutu bitowego (cyfr binarnych) zamiast heksowego.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +010066Opcja ta zapisuje oktety jako osiem cyfr 1 lub 0 zamiast normalnego
Bram Moolenaar899dddf2006-03-26 21:06:50 +000067zrzutu heksowego. Ka¿da linia jest poprzedzona przez
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +010068heksadecymalny numer linii a po nim jego reprezentacj± w ascii (lub
tristhaus85f45212023-10-06 19:51:13 +020069ebcdic). Opcje linii poleceñ \-p, \-i nie dzia³aj± w tym
Bram Moolenaar899dddf2006-03-26 21:06:50 +000070trybie.
71.TP
72.IR "\-c cols " | " \-cols cols"
73formatuje liczbê
74.RI < cols >
75oktetów na wiersz. Domy¶lnie 16 (\-i: 12, \-ps: 30, \-b: 6). Maks.
76256.
77.TP
78.IR \-E " | "\-EBCDIC
79zmienia kodowanie znaków w prawej kolumnie z ASCII na EBCDIC.
80Nie zmienia prezentacji heksadecymalej. Opcja nie dzia³a w po³±czeniu
81z \-r, \-p lub \-i.
82.TP
83.IR "\-g bajtów " | " \-groupsize bajtów"
84oddziela wyj¶cie ka¿dych
85.RI < bajtów >
86bajtów (dwa heksowe znaki lub osiem cyfr binarnych ka¿de) przez bia³y
87znak.
88Okre¶l
89.I \-g 0
90by wy³±czyæ grupowanie.
91.RI < Bajtów "> domy¶lnie jest " 2
92w trybie normalnym i \fI1\fP w trybie bitów.
93Grupowanie nie dzia³a w trybie postscriptu lub w³±czania.
94.TP
95.IR \-h " | " \-help
96wypisuje podsumowanie dostêpnych poleceñ i koñczy dzia³anie. Nie
97zostaje przeprowadzony ¿aden zrzut.
98.TP
99.IR \-i " | " \-include
100wyj¶cie w stylu w³±czania pliku w C. Zostaje zapisana kompletna
101statyczna tablica definicji (nazwana wed³ug pliku wej¶cia), o ile xxd
102nie czyta ze standardowego wej¶cia.
103.TP
104.IR "\-l len " | "\-len len"
105zakoñcz po wypisaniu
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100106.RI < len >
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000107oktetów.
108.TP
109.IR \-p " | " \-ps " | " \-postscript " | " \-plain
110wyj¶cie w postcriptowym ci±g³ym stylu zrzutu heksowego. Znany tak¿e
111jako zwyk³y zrzut heksowy.
112.TP
113.IR \-r " | " \-revert
114odwróæ operacjê: przekonwertuj (lub za³ataj) zrzut heksowy w binarkê.
115Je¶li nie zapisuje na standardowe wyj¶cie, xxd zapisze plik wyj¶ciowy
116bez obcinania go. U¿yj kombinacji
117.I \-r \-p
118by odczytaæ zwyk³y zrzut heksadecymalny bez numerów linii
119i okre¶lonego uk³adu kolumn. Dodatkowe bia³e znaki i ³amanie wierszy
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100120s± wszêdzie dozwolone.
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000121.TP
122.I \-seek offset
123Kiedy u¿yty po
124.IR \-r :
125odwraca z
126.RI < offset >
127dodanym do pozycji w pliku odnalezionym w zrzucie heksowym.
128.TP
129.I \-s [+][\-]seek
130zaczyna na
131.RI < seek >
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100132bajtów bezwglêdnego (lub wzglêdnego) offsetu pliku wej¶ciowego.
133\fI+ \fRwskazuje, ¿e seek jest wzglêdne do bie¿±cej pozycji pliku (bez
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000134znaczenia je¶li nie wczytuje ze standardowego wej¶cia). \fI\- \fRwskazuje
135¿e seek powinno byæ o tyle znaków od koñca wej¶cia (lub je¶li
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100136po³±czone z \fI+\fR: przed bie¿±c± pozycj± pliku na standardowym
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000137wej¶ciu).
138Bez opcji \-s xxd zaczyna od bie¿±cej pozycji w pliku.
139.TP
140.I \-u
141u¿yj wielkich liter w znakach heksowych. Domy¶lnie s± ma³e znaki.
142.TP
143.IR \-v " | " \-version
144pokazuje wersjê programu.
145.SH OSTRZE¯ENIA
146.PP
147.I xxd \-r
148potrafi okre¶liæ numery linii. Je¶li plik wyj¶cia jest mo¿liwy do
149przeszukania wtedy numery linii na pocz±tku wiersza zrzutu heksowego
150mog± byæ nie po kolei, mo¿e brakowaæ wierszy lub nak³adaæ siê na
151siebie. W takich wypadkach xxd u¿yje lseek(2) by znale¼æ nastêpn±
152pozycjê. Je¶li plik wyj¶ciowy nie jest mo¿liwy do przeszukania mo¿liwe
153s± tylko przerwy, które zostan± wype³nione bajtami null.
154.PP
155.I xxd \-r
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100156nigdy nie podaje b³êdów analizy. ¦mieci s± po cichu ignorowane.
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000157.PP
158W czasie edycji zrzutów heksowych, proszê zauwa¿yæ ¿e
159.I xxd \-r
160pomija wszystko w linii wej¶cia po odczytaniu wystarczaj±cej ilo¶ci
161kolumn danych heksadecymalnych (zobacz opcjê \-c). Oznacza to tak¿e,
162¿e zmiany w drukowanych kolumnach ascii (lub ebcdic) s± zawsze
163ignorowane. Odwrócenie zwyk³ego (lub postscriptowego) stylu zrzutu
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100164poprzez xxd \-r \-p nie zale¿y od kolejno¶ci kolumn. Tutaj cokolwiek
165co wygl±da jak para znaków heks jest interpretowane.
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000166.PP
167Zauwa¿ ró¿nicê miêdzy
168.br
169\fI% xxd \-i plik\fR
170.br
171i
172.br
173\fI% xxd \-i < plik\fR
174.PP
175.I xxd \-s \+seek
176mo¿e byæ ró¿ne od
177.IR "xxd \-s seek" ,
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100178poniewa¿ lseek(2) jest u¿yty do "przewiniêcie" wej¶cia. '+' stanowi
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000179ró¿nicê je¶li ¼ród³em wej¶cia jest standardowe wej¶cie i je¶li pozycja
180w pliku ze standardowego wej¶cia nie jest pocz±tkiem pliku w chwili
181uruchomienia xxd. Nastêpuj±ce przyk³ady mog± wyja¶niæ (lub bardziej
182zmyliæ!)...
183.PP
184Przewiñ standardowe wej¶cie przed przeczytaniem; potrzebne poniewa¿
185`cat' ju¿ odczyta³ do koñca standardowego wej¶cia.
186.br
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100187\fI% sh \-c 'cat > zwyk³a_kopia; xxd \-s 0 > hex_kopia' < plik\fR
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000188.PP
189Zrzut heksowy od pozycji pliku 0x480 (=1024+128) w przód.
190Znak `+' oznacza "wzglêdny wobec bie¿±cej pozycji", st±d `128' dodaje
191do 1k gdzie zakoñczy³ dd.
192.br
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100193\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet' < file\fR
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000194.PP
195Zrzut heksowy od pozycji pliku 0x100 ( = 1024\-768) dalej.
196.br
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100197\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +-768 > hex_snippet' < file\fR
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000198.PP
199Jakkolwiek, jest to rzadka sytuacja i u¿ycie `+' jest rzadko
200potrzebne.
201Autor woli monitorowaæ dzia³anie xxd przy pomocy strace(1) lub truss(1) kiedy \-s jest u¿yte.
202.SH PRZYK£ADY
203.PP
204.br
205Wypisz wszystko z wyj±tkiem pierwszych trzech linii (heksowe 0x30 bajtów)
206.B pliku
207\.
208.br
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100209\fI% xxd \-s 0x30 plik\fR
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000210.PP
211.br
212Wypisz trzy linie (heksowe 0x30 bajtów) z koñca
213.B pliku
214\.
215.br
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100216\fI% xxd \-s \-0x30 plik\fR
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000217.PP
218.br
Bram Moolenaard5ab34b2007-05-05 17:15:44 +0000219Wypisz 120 bajtów jako ci±g³y zrzut heksowy z 20 oktetami na liniê.
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000220.br
221\fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR
222.br
2232e54482058584420312022417567757374203139
224.br
22539362220224d616e75616c207061676520666f72
226.br
22720787864220a2e5c220a2e5c222032317374204d
228.br
229617920313939360a2e5c22204d616e2070616765
230.br
23120617574686f723a0a2e5c2220202020546f6e79
232.br
233204e7567656e74203c746f6e79407363746e7567
234.br
235
236.br
237Zrzut heksowy z pierwszymi 120 bajtami tej strony podrêcznika z 12
238oktetami na liniê.
239.br
240\fI% xxd \-l 120 \-c 12 xxd.1\fR
241.br
2420000000: 2e54 4820 5858 4420 3120 2241 .TH XXD 1 "A
243.br
244000000c: 7567 7573 7420 3139 3936 2220 ugust 1996"
245.br
2460000018: 224d 616e 7561 6c20 7061 6765 "Manual page
247.br
2480000024: 2066 6f72 2078 7864 220a 2e5c for xxd"..\\
249.br
2500000030: 220a 2e5c 2220 3231 7374 204d "..\\" 21st M
251.br
252000003c: 6179 2031 3939 360a 2e5c 2220 ay 1996..\\"
253.br
2540000048: 4d61 6e20 7061 6765 2061 7574 Man page aut
255.br
2560000054: 686f 723a 0a2e 5c22 2020 2020 hor:..\\"
257.br
2580000060: 546f 6e79 204e 7567 656e 7420 Tony Nugent
259.br
260000006c: 3c74 6f6e 7940 7363 746e 7567 <tony@sctnug
261.PP
262.br
263Poka¿ tylko datê z pliku xxd.1
264.br
265\fI% xxd \-s 0x36 \-l 13 \-c 13 xxd.1\fR
266.br
2670000036: 3231 7374 204d 6179 2031 3939 36 21st May 1996
268.PP
269.br
270Kopiuj
271.B plik_we
272do
273.B plik_wy
274i poprzed¼ 100 bajtami o warto¶ci 0x00.
275.br
276\fI% xxd plik_we | xxd \-r \-s 100 \> plik_wy\fR
277.br
278
279.br
280Podmieñ datê w pliku xxd.1
281.br
282\fI% echo '0000037: 3574 68' | xxd \-r \- xxd.1\fR
283.br
284\fI% xxd \-s 0x36 \-l 13 \-c 13 xxd.1\fR
285.br
2860000036: 3235 7468 204d 6179 2031 3939 36 25th May 1996
287.PP
288.br
289Utwórz plik o 65537 bajtach, wszystkich równych 0x00,
290z wyj±tkiem ostatniego, który ma byæ 'A' (hex 0x41).
291.br
292\fI% echo '010000: 41' | xxd \-r \> plik\fR
293.PP
294.br
295Zrzut heksowy tego pliku z autoskipem.
296.br
297\fI% xxd \-a \-c 12 plik\fR
298.br
2990000000: 0000 0000 0000 0000 0000 0000 ............
300.br
301*
302.br
303000fffc: 0000 0000 40 ....A
304.PP
305Utwórz jedno bajtowy plik zawieraj±cy pojedncz± literê 'A'.
306Liczba po '\-r \-s' dodaje numery linii znalezione w pliku;
307w efekcie poprzedzaj±ce bajty s± ukryte.
308.br
309\fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> plik\fR
310.PP
311U¿yj xxd jako filtra wewn±trz edytora takiego jak
312.B vim(1)
313aby uzyskaæ zrzut heksowy zakresu miêdzy markerami `a' i `z'.
314.br
315\fI:'a,'z!xxd\fR
316.PP
317U¿yj xxd jako filtra wewn±trz edytora takiego jak
318.B vim(1)
319by odzyskaæ binarny zrzut heksowy zakresu pomiêdzy markerami `a'
320i `z'.
321.br
322\fI:'a,'z!xxd \-r\fR
323.PP
324U¿yj xxd jako filtra wewn±trz edytora takiego jak
325.B vim(1)
326by odzyskaæ jedn± liniê zrzutu heksowego. Przejd¼ z kursorem na liniê
327i wpisz:
328.br
329\fI!!xxd \-r\fR
330.PP
331Odczytaj pojednycze znaki z portu szeregowego
332.br
333\fI% xxd \-c1 < /dev/term/b &\fR
334.br
335\fI% stty < /dev/term/b \-echo \-opost \-isig \-icanon min 1\fR
336.br
337\fI% echo \-n foo > /dev/term/b\fR
338.PP
339.SH "ZWRACANE WARTO¦CI"
340Zwracane s± nastêpuj±ce warto¶ci b³êdów:
341.TP
3420
343nie znaleziono b³êdów.
344.TP
345\-1
346operacja nie jest wspierana (
347.I xxd \-r \-i
348ca³y czas niemo¿liwa).
349.TP
3501
351b³±d w czasie analizowania opcji.
352.TP
3532
354problemy z plikiem wej¶ciowym.
355.TP
3563
357problemy z plikiem wyj¶ciowym.
358.TP
3594,5
360¿±dana pozycja jest nieosi±galna.
361.SH "ZOBACZ TAK¯E"
362uuencode(1), uudecode(1), patch(1)
363.br
364.SH OSTRZE¯ENIA
365Dziwaczno¶æ narzêdzi dorównuje dziwaczno¶ci mózgu twórcy.
366U¿ywaj wy³±cznie na w³asn± odpowiedzialno¶æ. Kopiuj pliki. Analizuj
367je. Stañ siê czarodziejem.
368.br
369.SH WERSJA
370Strona podrêcznika opisuje xxd w wersji 1.7
371.SH AUTOR
372.br
373(c) 1990-1997 by Juergen Weigert
374.br
375<jnweiger@informatik.uni-erlangen.de>
376.LP
377Kopiuj do woli i podaj moje dane,
378.br
379zarabiaj pieni±dze i dziel siê ze mn±,
380.br
381traæ pieni±dze i nie miej do mnie pretensji.
382.PP
383Strona podrêcznika zapocz±tkowana przez Tony'ego Nugenta
384.br
385<tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
386.br
387Ma³e zmiany: Bram Moolenaar.
388Redakcja: Juergen Weigert.
389.PP