DIFF(1) Narzdzia GNU DIFF(1)
diff - szukanie rnic pomidzy dwoma plikami
diff [opcje] plik1 plik2
Dokumentacja niniejsza nie jest ju utrzymywana i moe by niedokadna lub
niekompletna. Autorytatywnym rdem jest obecnie dokumentacja Texinfo.
Dostp do niej uzyskasz wpisujc w wierszu polece:
pinfo diff
lub
info diff.
W najprostszym przypadku diff porwnuje zawarto dwch plikw, plik1 i
plik2. Nazwa pliku - oznacza tekst odczytywany ze standardowego wejcia.
W specjalnym przypadku "diff - -" porwnuje kopi standardowego wyjcia ze
samym sob.
Jeli plik1 jest katalogiem a plik2 nie, diff porwnuje plik z katalogu
plik1, ktrego nazwa jest taka sama, jak plik2, i odwrotnie. Plik nie
bdcy katalogiem nie moe by -.
Jeli zarwno plik1 jak i plik2 s katalogami, diff porwnuje odpowiednie
pliki w obu katalogach, w kolejnoci alfabetycznej. To porwnanie nie
jest rekurencyjne, chyba e podano opcj -r lub --recursive. diff nigdy
nie porwnuje zawartoci katalogu tak, jakby by on plikiem. Podany plik
nie moe by standardowym wejciem, poniewa standardowe wejcie nie ma
nazwy i nie dotyczy go zapis `plik o tej samej nazwie'.
Opcje diff na og zaczynaj si od -, wic zwykle nazwy plikw plik1 oraz
plik2 nie mog zaczyna si od -, jednak argument -- traktuje pozostae
argumenty jako nazwy plikw, nawet jeli zaczynaj si one od -.
Poniej znajduje si podsumowanie wszystkich opcji akceptowanych przez
GNU diff. Wikszo opcji posiada dwie rwnowane formy, jedn z nich jest
pojedyncza litera poprzedzona kresk -, a drug pena nazwa poprzedzona
przez --. Wiele pojedynczych liter opcji (nie wymagajcych argumentu)
moe by czonych w pojedynczym sowie: `-ac' jest rwnowane z `-a -c'.
Opcje w formie penej nazwy mog by skracane do dowolnego unikalnego
przedrostka. Klamry ([ i ]) oznaczaj, e opcja pobiera opcjonalny argu-
ment.
-i
--ignore-case
Ignorowanie zmian w wielkoci liter, due i mae litery s uznawane
za rwnowane.
-w
--ignore-all-space
Ignorowanie wszystkich odstpw przy porwnywaniu plikw.
-b
--ignore-space-change
Ignorowanie zmian w iloci odstpw.
-B
--ignore-blank-lines
Ignorowanie zmian, ktre jedynie dodaj lub usuwaj puste linie.
-I regexp
--ignore-matching-lines=regexp
Ignorowanie zmian, ktre jedynie dodaj lub usuwaj linie pasujce
do wyraenia regularnego regexp.
--binary
diff normalnie czyta i zapisuje wszystkie dane jako tekst. Ta
opcja wymusza odczyt i zapis danych w trybie binarnym. Nie ma
efektu na systemach zgodnych z POSIX, jak GNU czy tradycyjne
Uniksy. Jednak wiele systemw operacyjnych komputerw osobistych
oznacza koniec linii dwuznakow sekwencj: znakiem powrotu karetki
plus znak nowej linii. Na takich systemach diff normalnie
ignoruje powroty karetki na wejciu i generuje je na kocu kadej
linii wyjciowej, ale z opcj --binary traktuje powrt karetki jak
kady inny znak wejciowy i nie dokada go na kocu tworzonych
linii. Przydatne do operowania na plikach nie-tekstowych, ktre
maj by wymieniane z systemami POSIX-owymi.
Do porwnywania dwu plikw bajt po bajcie suy polecenie cmp(1).
-a
--text Traktowanie wszystkich plikw jako pliki tekstowe i porwnywanie
ich linia po linii, nawet jeli nie wygldaj one na pliki tek-
stowe.
-c
-C linie
--context[=linie]
Uycie kontekstowego formatu wyjciowego z pokazaniem iloci linii
kontekstu podanej w linie (warto cakowita), lub trzy jeli nie
podano linie. Do prawidowego dziaania patch potrzebuje co najm-
niej dwch linii kontekstu.
-u
-U linie
--unified[=linie]
Uycie zunifikowanego formatu wyjciowego i pokazanie iloci linii
kontekstu podanej w linie (warto cakowita), lub trzy jeli nie
podano linie. Do prawidowego dziaania patch potrzebuje co najm-
niej dwch linii kontekstu.
-linie Wywietlenie iloci linii kontekstu podanej w linie (warto
cakowita). Ta opcja nie ustala wyjciowego formatu, nie ma ona
efektu jeli nie podano opcji -c lub -u. Ta opcja jest przes-
tarzaa. Do prawidowego dziaania patch potrzebuje co najmniej
dwch linii kontekstu.
-L etykieta
--label=etykieta
Uycie tekstu etykieta w miejsce nazwy plikw w nagwku formatu
kontekstowego i zunifikowanego.
-p
--show-c-function
Pokazanie, do jakiej funkcji C naley kada ze zmian.
-F regexp
--show-function-line=regexp
Pokazanie ostatniej poprzedzajcej linii, ktra pasuje do wyraenia
regularnego regexp dla kadego rnicego si fragmentu w formacie
kontekstowym i zunifikowanym.
-q
--brief
Poinformowanie jedynie o tym, czy pliki si rni, bez podawania
szczegw na temat rnic.
-e
--ed Stworzenie wyjcia, ktre jest poprawnym skryptem ed.
-f
--forward-ed
Stworzenie wyjcia, ktre wyglda prawie tak jak skrypt ed, ale
zawiera modyfikacje w kolejnoci pojawiania si zmian w pliku.
-n
--rcs Wyprowadzenie rnic w formacie RCS, tak jak -f, z tym wyjtkiem, e
kada komenda wyszczeglnia numer linii, ktrej dotyczy.
-y
--side-by-side
Uycie formatu wyjciowego jeden obok drugiego.
-W kolumny
--width=kolumny
Uycie szerokoci wyjcia kolumny w formacie jedna obok drugiej.
--left-column
Wywietlenie jedynie lewej kolumny z dwch wsplnych w formacie
jedna obok drugiej.
--suppress-common-lines
Nie wywietlanie wsplnych linii w formacie jedna obok drugiej.
-D nazwa
--ifdef=nazwa
Stworzenie poczonego wyjcia w formacie preprocesora nazwa.
--old-group-format=formatgrupy
Uycie formatu formatgrupy do wyprowadzenia grupy linii wzitej
jedynie z pierwszego pliku. Pomocne w tworzeniu plikw
wynikowych o konstrukcji typu if-then-else.
--new-group-format=formatgrupy
Uycie formatu formatgrupy do wyprowadzenia grupy linii wzitej
jedynie z drugiego pliku. Pomocne w tworzeniu plikw wynikowych
o konstrukcji typu if-then-else.
--changed-group-format=formatgrupy
Uycie formatu wyjciowego formatgrupy do wywietlania grupy linii
zawierajcych rnice si linie z obu plikw. Pomocne w tworzeniu
plikw wynikowych o konstrukcji typu if-then-else.
--unchanged-group-format=formatgrupy
Uycie formatu formatgrupy do wyprowadzenia wsplnej grupy linii
wzitej z obu plikw. Pomocne w tworzeniu plikw wynikowych o kon-
strukcji typu if-then-else.
Format grupy linii
W formacie okrelajcym sposb wypisania grupy linii zwyke znaki
oznaczaj same siebie; specyfikacje konwersji zaczynaj si od
znaku procentu % i maj jedn z poniszych postaci:
%< linie z plik1, cznie z kocowym znakiem nowej linii, forma-
towane zgodnie z formatem starych linii
%> linie z plik2, formatowane zgodnie z formatem nowych linii
%= linie wsplne dla obu plikw, formatowane zgodnie z formatem
linii niezmienionych
%[-][szer][.[dok]]{doxX}litera
warto okrelona liter, sformatowana w stylu printf. litery
maj, w odniesieniu do grup linii w nowym pliku, nastpujce
znaczenie (dla grup w starym pliku uywa si maych liter):
F numer pierwszej linii
L numer ostatniej linii
N ilo linii = L-F+1
E F-1
M L+1
%% pojedynczy dosowny znak procentu %.
%c'C'
gdzie C jest pojedynczym znakiem, oznacza C. Nie moe to by
odwrotny ukonik ani apostrof. Na przykad, %c':' oznacza
dwukropek, nawet wewntrz czci then formatu if-then-else, ktr
normalnie by koczy.
%c'\O'
gdzie O jest acuchem 1, 2 lub 3 cyfr semkowych, oznacza znak
o kodzie semkowym O. Na przykad, %c'\0' oznacza znak null.
(A=B?T:E)
Jeli A rwna si B, to T, w przeciwnym razie E. A i B s albo
obie staymi podanymi dziesitnie albo pojedynczymi literami,
interpretowanymi jak wyej.
--line-format=formatlinii
Uycie formatu formatlinii do wyprowadzenia wszystkich linii. To
samo, co rwnoczesne uycie wszystkich opcji formatowania linii
(--old-line-format, --new-line-format, --unchanged-line-format)
z tym samym formatem. Pomocne w tworzeniu plikw wynikowych o
konstrukcji typu if-then-else.
--old-line-format=formatlinii
Uycie formatu formatlinii do wyprowadzenia linii wzitej jedynie
z pierwszego pliku. Pomocne w tworzeniu plikw wynikowych o kon-
strukcji typu if-then-else.
--new-line-format=formatlinii
Uycie formatu formatlinii do wyprowadzenia linii wzitej jedynie
z drugiego pliku. Pomocne w tworzeniu plikw wynikowych o kon-
strukcji typu if-then-else.
--unchanged-line-format=formatlinii
Uycie formatu formatlinii do wyprowadzenia wsplnej linii wzitej
z obu plikw. Pomocne w tworzeniu plikw wynikowych o konstrukcji
typu if-then-else.
Format linii
W formacie okrelajcym sposb wypisania linii zwyke znaki oznaczaj
same siebie; specyfikacje konwersji zaczynaj si od znaku pro-
centu % i maj jedn z poniszych postaci:
%l zawarto danej linii, nie liczc koczcego j znaku nowej linii
(jeli jest takowy). Ten format ignoruje czy linia jest
niekompletna czy poprawnie zakoczona.
%L zawarto danej linii, cznie z koczcym j znakiem nowej linii
(jeli jest takowy). Jeeli linia jest niekompletna, to
zachowuje t niekompletno.
%[-][szer][.[dok]]{doxX}n
numer linii wejciowej, sformatowany w stylu printf.
%% dosowny znak procentu %.
%c'C'
dosowny znak C. Nie moe to by odwrotny ukonik ani apostrof.
%c'\O'
znak o kodzie semkowym O.
-l
--paginate
Przesanie wyjcia przez pr, aby podzieli je na strony.
-t
--expand-tabs
Rozszerzanie tabulatorw do spacji na wyjciu, aby zachowa orygi-
nalne uoenie tabulatorw pliku wejciowego.
-T
--initial-tab
Wyprowadzenie tabulatora zamiast spacji przed tekstem linii w
formacie normalnym lub kontekstowym. Powoduje to normalny wygld
tabulatorw w linii.
-r
--recursive
Rekurencyjne porwnanie wszystkich podkatalogw, jeli porwnywane s
katalogi.
-N
--new-file
Jeli podczas porwnywania katalogw plik istnieje jedynie w jednym
z katalogw, bdzie traktowany tak, jakby by obecny w drugim kata-
logu, ale pusty.
-P
--unidirectional-new-file
Jeli podczas porwnywania katalogw plik istnieje jedynie w drugim
katalogu, bdzie traktowany tak, jakby by obecny w pierwszym kat-
alogu, ale pusty.
-s
--report-identical-files
Poinformowanie, jeli oba pliki s identyczne.
-x wzorzec
--exclude=wzorzec
Podczas porwnywania katalogw, ignorowanie plikw i podkatalogw,
ktrych nazwy pasuj do wzorca wzorzec.
-X plik
--exclude-from=plik
Podczas porwnywania katalogw, ignorowanie plikw i podkatalogw,
ktrych nazwa pasuje do jednego z wzorcw podanych w pliku plik.
-S plik
--starting-file=plik
Podczas porwnywania katalogw rozpoczcie od pliku plik. Opcja ta
jest uyteczna podczas wznawiania przerwanego porwnania.
--horizon-lines=linie
Nie ignorowanie ostatnich linie linii wsplnego przedrostka oraz
pierwszych linie linii wsplnego przyrostka.
-d
--minimal
Zmiana algorytmu na taki, ktry moe czasami znale mniejsz liczb
zmian. Spowalnia to dziaania diff (czasami bardzo znacznie).
-H
--speed-large-files
Uycie algorytmw heurystycznych aby przyspieszy przeszukiwanie
duych plikw ze znaczn liczb rozrzuconych maych zmian.
-h Ta opcja aktualnie nie ma adnego efektu, ale istnieje dla zgod-
noci z systemem Unix.
--sdiff-merge-assist
Wywietlenie dodatkowych informacji pomocnych dla sdiff. sdiff
korzysta z tej opcji gdy uruchamia diff. Uytkownicy nie powinni
korzysta z tej opcji bezporednio.
--help Wywietlenie informacji o stosowaniu programu i dostpnych opc-
jach.
-v
--version
Wywietlenie numeru wersji programu.
Plik ten powsta na podstawie podrcznika info pakietu diffutils.
Copyright (C) 1992, 1993, 1994 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a per-
mission notice identical to this one.
Permission is granted to copy and distribute translations of this man-
ual into another language, under the above conditions for modified ver-
sions, except that this permission notice may be stated in a transla-
tion approved by the Foundation.
cmp(1), comm(1), diff3(1), ed(1), patch(1), pr(1), sdiff(1).
Zwracana warto 0 oznacza, e nie odnaleziono rnic, 1 oznacza znalezienie
rnic, a 2 kopoty.
Narzdzia rnicowe GNU 1 padziernika 1994 DIFF(1)