neovim/runtime/doc/xxd-pl.1

390 lines
10 KiB
Groff
Raw Normal View History

.TH XXD 1 "Sierpie<69> 1996" "Strona podr<64>cznika dla xxd"
.\"
.\" 21st May 1996
.\" Man page author:
.\" Tony Nugent <tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
.\" Changes by Bram Moolenaar <Bram@vim.org>
.SH NAZWA
.I xxd
\- zrzut pliku do hex lub odwrotnie
.SH SYNOPSIS
.B xxd
\-h[elp]
.br
.B xxd
[opcje] [plik_we [plik_wy]]
.br
.B xxd
\-r[evert] [opcje] [plik_we [plik_wy]]
.SH OPIS
.I xxd
tworzy zrzut heksowy podanego pliku lub standardowego wej<65>cia.
Mo<EFBFBD>e tak<61>e przetworzy<7A> zrzut heksowy z powrotem do oryginalnej,
binarnej formy.
Podobnie jak
.BR uuencode (1)
i
.BR uudecode (1)
pozwala na przekazanie danych binarnych w bezpiecznej w poczcie formie
ASCII, ale ma zalety dekodowania na standardowe wyj<79>cie.
Ponadto mo<6D>na go u<>y<EFBFBD> do binarnego <20>atania plik<69>w.
.SH OPCJE
Je<EFBFBD>li nie podano
.I plik_we
xxd czyta ze standardowego wej<65>cia.
Je<EFBFBD>li okre<72>lono
.I plik_we
jako znak
.RB \` \- '
wtedy dane wej<65>ciowe czytane s<> ze standardowego wej<65>cia.
Je<EFBFBD>li nie podano
.I plik_wy
(lub podano jako
.RB \` \- '
), wyniki s<> wysy<73>ane na standardowe wyj<79>cie.
.PP
Pami<EFBFBD>taj, <20>e u<>yty zosta<74> "leniwy" parser, kt<6B>ry nie sprawdza wi<77>cej
ni<EFBFBD> pierwszej litery opcji (o ile ta nie zosta<74>a obdarzona
parametrem). Spacje mi<6D>dzy jedno literowymi opcjami i ich parametrami
s<EFBFBD> opcjonalne. Parametry opcji mog<6F> by<62> okre<72>lone w notacji dziesi<73>tnej,
heksadecymalej lub oktalnej.
St<EFBFBD>d
.BR \-c8 ,
.BR "\-c 8" ,
.B \-c 010
i
.B \-cols 8
s<EFBFBD> sobie r<>wnowa<77>ne.
.PP
.TP
.IR \-a " | " \-autoskip
prze<EFBFBD><EFBFBD>cza autoskip: pojedyncza '*' zast<73>puje linie nul. Domy<6D>lnie
wy<EFBFBD><EFBFBD>czone.
.TP
.IR \-b " | " \-bits
Prze<EFBFBD><EFBFBD>cza do zrzutu bitowego (cyfr binarnych) zamiast heksowego.
Opcja ta zapisuje oktety jako osiem cyfr 1 lub 0 zamiast normalnego
zrzutu heksowego. Ka<4B>da linia jest poprzedzona przez
heksadecymalny numer linii a po nim jego reprezentacj<63> w ascii (lub
ebcdic). Opcje linii polece<63> \-r, \-p, \-i nie dzia<69>aj<61> w tym
trybie.
.TP
.IR "\-c cols " | " \-cols cols"
formatuje liczb<7A>
.RI < cols >
oktet<EFBFBD>w na wiersz. Domy<6D>lnie 16 (\-i: 12, \-ps: 30, \-b: 6). Maks.
256.
.TP
.IR \-E " | "\-EBCDIC
zmienia kodowanie znak<61>w w prawej kolumnie z ASCII na EBCDIC.
Nie zmienia prezentacji heksadecymalej. Opcja nie dzia<69>a w po<70><6F>czeniu
z \-r, \-p lub \-i.
.TP
.IR "\-g bajt<6A>w " | " \-groupsize bajt<6A>w"
oddziela wyj<79>cie ka<6B>dych
.RI < bajt<EFBFBD>w >
bajt<EFBFBD>w (dwa heksowe znaki lub osiem cyfr binarnych ka<6B>de) przez bia<69>y
znak.
Okre<EFBFBD>l
.I \-g 0
by wy<77><79>czy<7A> grupowanie.
.RI < Bajt<EFBFBD>w "> domy<6D>lnie jest " 2
w trybie normalnym i \fI1\fP w trybie bit<69>w.
Grupowanie nie dzia<69>a w trybie postscriptu lub w<><77>czania.
.TP
.IR \-h " | " \-help
wypisuje podsumowanie dost<73>pnych polece<63> i ko<6B>czy dzia<69>anie. Nie
zostaje przeprowadzony <20>aden zrzut.
.TP
.IR \-i " | " \-include
wyj<EFBFBD>cie w stylu w<><77>czania pliku w C. Zostaje zapisana kompletna
statyczna tablica definicji (nazwana wed<65>ug pliku wej<65>cia), o ile xxd
nie czyta ze standardowego wej<65>cia.
.TP
.IR "\-l len " | "\-len len"
zako<EFBFBD>cz po wypisaniu
.RI < len >
oktet<EFBFBD>w.
.TP
.IR \-p " | " \-ps " | " \-postscript " | " \-plain
wyj<EFBFBD>cie w postcriptowym ci<63>g<EFBFBD>ym stylu zrzutu heksowego. Znany tak<61>e
jako zwyk<79>y zrzut heksowy.
.TP
.IR \-r " | " \-revert
odwr<EFBFBD><EFBFBD> operacj<63>: przekonwertuj (lub za<7A>ataj) zrzut heksowy w binark<72>.
Je<EFBFBD>li nie zapisuje na standardowe wyj<79>cie, xxd zapisze plik wyj<79>ciowy
bez obcinania go. U<>yj kombinacji
.I \-r \-p
by odczyta<74> zwyk<79>y zrzut heksadecymalny bez numer<65>w linii
i okre<72>lonego uk<75>adu kolumn. Dodatkowe bia<69>e znaki i <20>amanie wierszy
s<EFBFBD> wsz<73>dzie dozwolone.
.TP
.I \-seek offset
Kiedy u<>yty po
.IR \-r :
odwraca z
.RI < offset >
dodanym do pozycji w pliku odnalezionym w zrzucie heksowym.
.TP
.I \-s [+][\-]seek
zaczyna na
.RI < seek >
bajt<EFBFBD>w bezwgl<67>dnego (lub wzgl<67>dnego) offsetu pliku wej<65>ciowego.
\fI+ \fRwskazuje, <20>e seek jest wzgl<67>dne do bie<69><65>cej pozycji pliku (bez
znaczenia je<6A>li nie wczytuje ze standardowego wej<65>cia). \fI\- \fRwskazuje
<EFBFBD>e seek powinno by<62> o tyle znak<61>w od ko<6B>ca wej<65>cia (lub je<6A>li
po<EFBFBD><EFBFBD>czone z \fI+\fR: przed bie<69><65>c<EFBFBD> pozycj<63> pliku na standardowym
wej<EFBFBD>ciu).
Bez opcji \-s xxd zaczyna od bie<69><65>cej pozycji w pliku.
.TP
.I \-u
u<EFBFBD>yj wielkich liter w znakach heksowych. Domy<6D>lnie s<> ma<6D>e znaki.
.TP
.IR \-v " | " \-version
pokazuje wersj<73> programu.
.SH OSTRZE<EFBFBD>ENIA
.PP
.I xxd \-r
potrafi okre<72>li<6C> numery linii. Je<4A>li plik wyj<79>cia jest mo<6D>liwy do
przeszukania wtedy numery linii na pocz<63>tku wiersza zrzutu heksowego
mog<EFBFBD> by<62> nie po kolei, mo<6D>e brakowa<77> wierszy lub nak<61>ada<64> si<73> na
siebie. W takich wypadkach xxd u<>yje lseek(2) by znale<6C><65> nast<73>pn<70>
pozycj<EFBFBD>. Je<4A>li plik wyj<79>ciowy nie jest mo<6D>liwy do przeszukania mo<6D>liwe
s<EFBFBD> tylko przerwy, kt<6B>re zostan<61> wype<70>nione bajtami null.
.PP
.I xxd \-r
nigdy nie podaje b<><62>d<EFBFBD>w analizy. <20>mieci s<> po cichu ignorowane.
.PP
W czasie edycji zrzut<75>w heksowych, prosz<73> zauwa<77>y<EFBFBD> <20>e
.I xxd \-r
pomija wszystko w linii wej<65>cia po odczytaniu wystarczaj<61>cej ilo<6C>ci
kolumn danych heksadecymalnych (zobacz opcj<63> \-c). Oznacza to tak<61>e,
<EFBFBD>e zmiany w drukowanych kolumnach ascii (lub ebcdic) s<> zawsze
ignorowane. Odwr<77>cenie zwyk<79>ego (lub postscriptowego) stylu zrzutu
poprzez xxd \-r \-p nie zale<6C>y od kolejno<6E>ci kolumn. Tutaj cokolwiek
co wygl<67>da jak para znak<61>w heks jest interpretowane.
.PP
Zauwa<EFBFBD> r<><72>nic<69> mi<6D>dzy
.br
\fI% xxd \-i plik\fR
.br
i
.br
\fI% xxd \-i < plik\fR
.PP
.I xxd \-s \+seek
mo<EFBFBD>e by<62> r<><72>ne od
.IR "xxd \-s seek" ,
poniewa<EFBFBD> lseek(2) jest u<>yty do "przewini<6E>cie" wej<65>cia. '+' stanowi
r<EFBFBD><EFBFBD>nic<EFBFBD> je<6A>li <20>r<EFBFBD>d<EFBFBD>em wej<65>cia jest standardowe wej<65>cie i je<6A>li pozycja
w pliku ze standardowego wej<65>cia nie jest pocz<63>tkiem pliku w chwili
uruchomienia xxd. Nast<73>puj<75>ce przyk<79>ady mog<6F> wyja<6A>ni<6E> (lub bardziej
zmyli<EFBFBD>!)...
.PP
Przewi<EFBFBD> standardowe wej<65>cie przed przeczytaniem; potrzebne poniewa<77>
`cat' ju<6A> odczyta<74> do ko<6B>ca standardowego wej<65>cia.
.br
\fI% sh \-c 'cat > zwyk<79>a_kopia; xxd \-s 0 > hex_kopia' < plik\fR
.PP
Zrzut heksowy od pozycji pliku 0x480 (=1024+128) w prz<72>d.
Znak `+' oznacza "wzgl<67>dny wobec bie<69><65>cej pozycji", st<73>d `128' dodaje
do 1k gdzie zako<6B>czy<7A> dd.
.br
\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet' < file\fR
.PP
Zrzut heksowy od pozycji pliku 0x100 ( = 1024\-768) dalej.
.br
\fI% sh \-c 'dd of=plain_snippet bs=1k count=1; xxd \-s +-768 > hex_snippet' < file\fR
.PP
Jakkolwiek, jest to rzadka sytuacja i u<>ycie `+' jest rzadko
potrzebne.
Autor woli monitorowa<77> dzia<69>anie xxd przy pomocy strace(1) lub truss(1) kiedy \-s jest u<>yte.
.SH PRZYK<EFBFBD>ADY
.PP
.br
Wypisz wszystko z wyj<79>tkiem pierwszych trzech linii (heksowe 0x30 bajt<6A>w)
.B pliku
\.
.br
\fI% xxd \-s 0x30 plik\fR
.PP
.br
Wypisz trzy linie (heksowe 0x30 bajt<6A>w) z ko<6B>ca
.B pliku
\.
.br
\fI% xxd \-s \-0x30 plik\fR
.PP
.br
Wypisz 120 bajt<6A>w jako ci<63>g<EFBFBD>y zrzut heksowy z 20 oktetami na lini<6E>.
.br
\fI% xxd \-l 120 \-ps \-c 20 xxd.1\fR
.br
2e54482058584420312022417567757374203139
.br
39362220224d616e75616c207061676520666f72
.br
20787864220a2e5c220a2e5c222032317374204d
.br
617920313939360a2e5c22204d616e2070616765
.br
20617574686f723a0a2e5c2220202020546f6e79
.br
204e7567656e74203c746f6e79407363746e7567
.br
.br
Zrzut heksowy z pierwszymi 120 bajtami tej strony podr<64>cznika z 12
oktetami na lini<6E>.
.br
\fI% xxd \-l 120 \-c 12 xxd.1\fR
.br
0000000: 2e54 4820 5858 4420 3120 2241 .TH XXD 1 "A
.br
000000c: 7567 7573 7420 3139 3936 2220 ugust 1996"
.br
0000018: 224d 616e 7561 6c20 7061 6765 "Manual page
.br
0000024: 2066 6f72 2078 7864 220a 2e5c for xxd"..\\
.br
0000030: 220a 2e5c 2220 3231 7374 204d "..\\" 21st M
.br
000003c: 6179 2031 3939 360a 2e5c 2220 ay 1996..\\"
.br
0000048: 4d61 6e20 7061 6765 2061 7574 Man page aut
.br
0000054: 686f 723a 0a2e 5c22 2020 2020 hor:..\\"
.br
0000060: 546f 6e79 204e 7567 656e 7420 Tony Nugent
.br
000006c: 3c74 6f6e 7940 7363 746e 7567 <tony@sctnug
.PP
.br
Poka<EFBFBD> tylko dat<61> z pliku xxd.1
.br
\fI% xxd \-s 0x36 \-l 13 \-c 13 xxd.1\fR
.br
0000036: 3231 7374 204d 6179 2031 3939 36 21st May 1996
.PP
.br
Kopiuj
.B plik_we
do
.B plik_wy
i poprzed<65> 100 bajtami o warto<74>ci 0x00.
.br
\fI% xxd plik_we | xxd \-r \-s 100 \> plik_wy\fR
.br
.br
Podmie<EFBFBD> dat<61> w pliku xxd.1
.br
\fI% echo '0000037: 3574 68' | xxd \-r \- xxd.1\fR
.br
\fI% xxd \-s 0x36 \-l 13 \-c 13 xxd.1\fR
.br
0000036: 3235 7468 204d 6179 2031 3939 36 25th May 1996
.PP
.br
Utw<EFBFBD>rz plik o 65537 bajtach, wszystkich r<>wnych 0x00,
z wyj<79>tkiem ostatniego, kt<6B>ry ma by<62> 'A' (hex 0x41).
.br
\fI% echo '010000: 41' | xxd \-r \> plik\fR
.PP
.br
Zrzut heksowy tego pliku z autoskipem.
.br
\fI% xxd \-a \-c 12 plik\fR
.br
0000000: 0000 0000 0000 0000 0000 0000 ............
.br
*
.br
000fffc: 0000 0000 40 ....A
.PP
Utw<EFBFBD>rz jedno bajtowy plik zawieraj<61>cy pojedncz<63> liter<65> 'A'.
Liczba po '\-r \-s' dodaje numery linii znalezione w pliku;
w efekcie poprzedzaj<61>ce bajty s<> ukryte.
.br
\fI% echo '010000: 41' | xxd \-r \-s \-0x10000 \> plik\fR
.PP
U<EFBFBD>yj xxd jako filtra wewn<77>trz edytora takiego jak
.B vim(1)
aby uzyska<6B> zrzut heksowy zakresu mi<6D>dzy markerami `a' i `z'.
.br
\fI:'a,'z!xxd\fR
.PP
U<EFBFBD>yj xxd jako filtra wewn<77>trz edytora takiego jak
.B vim(1)
by odzyska<6B> binarny zrzut heksowy zakresu pomi<6D>dzy markerami `a'
i `z'.
.br
\fI:'a,'z!xxd \-r\fR
.PP
U<EFBFBD>yj xxd jako filtra wewn<77>trz edytora takiego jak
.B vim(1)
by odzyska<6B> jedn<64> lini<6E> zrzutu heksowego. Przejd<6A> z kursorem na lini<6E>
i wpisz:
.br
\fI!!xxd \-r\fR
.PP
Odczytaj pojednycze znaki z portu szeregowego
.br
\fI% xxd \-c1 < /dev/term/b &\fR
.br
\fI% stty < /dev/term/b \-echo \-opost \-isig \-icanon min 1\fR
.br
\fI% echo \-n foo > /dev/term/b\fR
.PP
.SH "ZWRACANE WARTO<54>CI"
Zwracane s<> nast<73>puj<75>ce warto<74>ci b<><62>d<EFBFBD>w:
.TP
0
nie znaleziono b<><62>d<EFBFBD>w.
.TP
\-1
operacja nie jest wspierana (
.I xxd \-r \-i
ca<EFBFBD>y czas niemo<6D>liwa).
.TP
1
b<EFBFBD><EFBFBD>d w czasie analizowania opcji.
.TP
2
problemy z plikiem wej<65>ciowym.
.TP
3
problemy z plikiem wyj<79>ciowym.
.TP
4,5
<EFBFBD><EFBFBD>dana pozycja jest nieosi<73>galna.
.SH "ZOBACZ TAK<41>E"
uuencode(1), uudecode(1), patch(1)
.br
.SH OSTRZE<EFBFBD>ENIA
Dziwaczno<EFBFBD><EFBFBD> narz<72>dzi dor<6F>wnuje dziwaczno<6E>ci m<>zgu tw<74>rcy.
U<EFBFBD>ywaj wy<77><79>cznie na w<>asn<73> odpowiedzialno<6E><6F>. Kopiuj pliki. Analizuj
je. Sta<74> si<73> czarodziejem.
.br
.SH WERSJA
Strona podr<64>cznika opisuje xxd w wersji 1.7
.SH AUTOR
.br
(c) 1990-1997 by Juergen Weigert
.br
<jnweiger@informatik.uni-erlangen.de>
.LP
Kopiuj do woli i podaj moje dane,
.br
zarabiaj pieni<6E>dze i dziel si<73> ze mn<6D>,
.br
tra<EFBFBD> pieni<6E>dze i nie miej do mnie pretensji.
.PP
Strona podr<64>cznika zapocz<63>tkowana przez Tony'ego Nugenta
.br
<tony@sctnugen.ppp.gu.edu.au> <T.Nugent@sct.gu.edu.au>
.br
Ma<EFBFBD>e zmiany: Bram Moolenaar.
Redakcja: Juergen Weigert.
.PP