table of contents
WDIFF(1) | General Commands Manual | WDIFF(1) |
NAZWA¶
wdiff - wyświetla różnice w wyrazach między plikami tekstowymi
SKŁADNIA¶
wdiff [opcja...] stary_plik nowy_plik
PRAWA AUTORSKIE¶
Copyright (C) 1992 Free Software Foundation, Inc.
OPIS¶
Dokumentacja niniejsza nie jest już utrzymywana i może być niedokładna lub niekompletna. Autorytatywnym źródłem jest obecnie dokumentacja Texinfo. Dostęp do niej uzyskasz wpisując w wierszu poleceń:
wdiff porównuje dwa pliki, stwierdzając, które wyrazy usunięto lub dodano do starego_pliku, by uzyskać nowy_plik. Wyrazem jest cokolwiek ograniczone białymi znakami. Wyniki są zbierane i używane do utworzenia skomentowanej kopii nowego pliku na standardowym wyjściu. Odpowiednie adnotacje dają ładny obraz różnic w wyrazach między pierwotnymi plikami.
wdiff kończy pracę z kodem 0 jeśli nie odnaleziono różnic, 1 jeżeli znaleziono różnice, a 2 w przypadku błędu.
Zwykle do oznaczenia usuniętego tekstu stosowane jest podkreślenie, zaś do oznaczenia tekstu wstawionego pogrubienie lub negatyw. Ten sposób domyślny można przesłonić opcjami wiersza poleceń. Usunięty tekst oznacza tekst w starym_pliku, którego nie ma w nowym_pliku , podczas gdy wstawiony tekst oznacza tekst w nowym_pliku, którego brak w starym_pliku.
OPCJE¶
- --help
- -h
- Wypisuje komunikat pomocy opisujący opcje.
- --version
- -v
- Wypisuje numer wersji wdiff na standardowym wyjściu diagnostycznym.
- --no-deleted
- -1
- Zabrania tworzenia w wyjściu usuniętych wyrazów. Jeśli nie wybrano ani opcji -1 ani -2, to w niektórych wierszach może zostać przekroczony pierwotny prawy margines.
- --no-inserted
- -2
- Zabrania tworzenia w wyjściu wstawionych wyrazów. Jeśli nie wybrano ani opcji -1 ani -2, to w niektórych wierszach może zostać przekroczony pierwotny prawy margines.
- --no-common
- -3
- Zabrania tworzenia w wyjściu wspólnych wyrazów. Jeśli nie użyto tej opcji, wspólne wyrazy i białe znaki są pobierane z nowego_pliku. Gdy jej użyto, to różnice zostaną od siebie oddzielone wierszami kresek. Ponadto, jeśli opcji tej użyto równocześnie z -1 lub -2, to w utworzonym wyjściu nie będzie wyróżnień - tzn. pogrubień ani podkreśleń. Na koniec, jeśli nie użyto tej opcji, ale użyto obu opcji -1 i -2, to sekcje wspólnych wyrazów pomiędzy różnicami będą oddzielane wierszami kresek.
- --statistics
- -s
- Na zakończenie wypisywana jest, dla każdego pliku, całkowita liczba wyrazów, wyrazów wspólnych dla obu plików, usuniętych bądź wstawionych i liczba zmienionych. (Wyraz zmieniony to taki, który został zastąpiony lub jest częścią zastąpienia.) Z wyjątkiem całkowitej liczby wyrazów, po wszystkich pozostałych liczbach występuje procent względem całkowitej liczby wyrazów w pliku.
- --auto-pager
- -a
- Jeśli wyjście wdiff jest kierowane na terminal, to
pomiędzy nie wstawiany jest program stronicowania (pager). Bez tej
opcji nie będzie wywoływany żaden program
stronicujący. Wówczas, jeśli to potrzebne,
użytkownik sam odpowiada za jawne skierowanie potokiem
wyjścia z wdiff to pagera.
Program stronicujący określa się wartością zmiennej środowiskowej PAGER. Jeśli podczas wykonywania wdiff zmienna PAGER nie jest zdefiniowana, to zostanie użyty domyślny program stronicujący, wybrany podczas instalacji. Zdefiniowana, lecz pusta wartość PAGER oznacza brak jakiegokolwiek programu stronicowania.
Gdy przez użycie tej opcji stosowany jest program stronicujący, włączana jest także jedna z opcji -l lub -t, w zależności od tego, czy w nazwie pagera pojawia się łańcuch "less" czy nie.
Często warto zdefiniować wdiff jako alias dla wdiff -a. Jednak "ukrywa" to zwykłe zachowanie się programu. Można je przywrócić po prostu przepuszczając potokiem wyjście wdiff przez cat. Taki sposób odłącza wyjście od terminala.
- --printer
- -p
- Stosuje nadruk do wyróżnienia części wyjścia. Każdy ze znaków usuniętego tekstu jest podkreślany przez wypisanie najpierw znaku podkreślenia _, a następnie znaku cofnięcia (backspace) i litery, jaka ma zostać podkreślona. Każdy ze znaków wstawionego tekstu jest pogrubiany przez wypisanie go dwukrotnie, z cofnięciem pomiędzy przebiegami. Domyślnie ta opcja nie jest włączona.
- --less-mode
- -l
- Stosuje nadruk do wyróżnienia części
wyjścia. Działa jak opcja -p, ale dodatkowo nadpisuje
białe znaki związane z wstawianym tekstem. less
pokazuje takie białe znaki stosując negatyw obrazu.
Domyślnie ta opcja nie jest włączona. Jest jednak
włączana automatycznie każdorazowo gdy wdiff
uruchamia less. (Zobacz opcję -a.)
Jest często stosowana w połączeniu z less:
wdiff -l stary_plik nowy_plik | less
- --terminal
- -t
- Wymusza tworzenie łańcuchów termcap do
wyróżniania części wyjścia, nawet
jeśli standardowe wyjście nie jest związane z
terminalem. Zmienna środowiskowa TERM musi zawierać
nazwę poprawnego wpisu z termcap. Jeśli pozwala na to
opis danego terminala, do oznaczania usuniętego tekstu stosowane
jest podkreślenie, a do wstawionego tekstu pogrubienie lub negatyw.
Domyślnie ta opcja nie jest włączona. Jest jednak
włączana automatycznie każdorazowo gdy wdiff
uruchamia program stronicujący i wiadomo, że nie jest
to less. (Zobacz opcję -a.)
Tę opcję stosuje się powszechnie gdy wyjście wdiff nie jest przekierowane, ale wysyłane wprost na terminal, jak w:
wdiff -t stary_plik nowy_plik
Częste rozwiązanie to korzystanie z wdiff razem z programem stronicującym more:
wdiff -t stary_plik nowy_plik | more
Jednak niektóre wersje more wykorzystują wyróżnienia termcap do własnych celów, więc mogą wystąpić dziwne wzajemne oddziaływania.
- --start-delete argument
- -w argument
- Stosuje argument jako łańcuch "początku usuwania". Zostanie on wypisany przed każdą sekwencją usuniętego tekstu, zaznaczając jej początek. Domyślnie nie jest używany żaden łańcuch początku usuwania, chyba że nie ma innych środków, dzięki którym można by rozpoznać, gdzie się zaczyna taki tekst. Wówczas domyślnym łańcuchem początku usuwania jest [-.
- --end-delete argument
- -x argument
- Stosuje argument jako łańcuch "końca usuwania". Zostanie on wypisany po każdej sekwencji usuniętego tekstu, zaznaczając jej koniec. Domyślnie nie jest używany żaden łańcuch końca usuwania, chyba że nie ma innych środków, dzięki którym można by rozpoznać, gdzie się kończy taki tekst. Wówczas domyślnym łańcuchem końca usuwania jest -] .
- --start-insert argument
- -y argument
- Stosuje argument jako łańcuch "początku wstawiania". Zostanie on wypisany przed każdą sekwencją wstawionego tekstu, zaznaczając jej początek. Domyślnie nie jest używany żaden łańcuch początku wstawiania, chyba że nie ma innych środków, dzięki którym można by rozpoznać, gdzie się zaczyna taki tekst. Wówczas domyślnym łańcuchem początku wstawiania jest {+.
- --end-insert argument
- -z argument
- Stosuje argument jako łańcuch "końca wstawiania". Zostanie on wypisany po każdej sekwencji wstawionego tekstu, zaznaczając jej koniec. Domyślnie nie jest używany żaden łańcuch końca wstawiania, chyba że nie ma innych środków, dzięki którym można by rozpoznać, gdzie się kończy taki tekst. Wówczas domyślnym łańcuchem końca wstawiania jest +}.
- --avoid-wraps
- -n
- Zabrania łączenia końców wiersza podczas pokazywania usuniętego lub wstawionego tekstu. Każdy pojedynczy fragment usuniętego lub wstawionego tekstu rozciągający się na wiele wierszy będzie uważany za złożony z wielu mniejszych kawałków nie zawierających znaku nowej linii. Zatem na przykład, usunięty tekst będzie miał łańcuch końca usuwania na końcu każdego wiersza, zaraz przed znakiem nowej linii, i łańcuch początku usuwania na początku następnego wiersza. Każdy wiersz w długim akapicie wstawionego tekstu będzie ujęty pomiędzy łańcuchy początku wstawiania i końca wstawiania. To zachowanie domyślnie nie jest włączone.
Zauważ, że opcje -p, -t i -[wxyz] nie wykluczają się wzajemnie. Używając dowolnej ich kombinacji sumuje się po prostu efekty każdej z nich. Opcja -l jest wariantem opcji -p.
PRZYKŁADY¶
Poniższe polecenie tworzy kopię nowego_pliku , przesuniętą o jedno miejsce w prawo w celu pomieszczenia pionowych kresek zmian od ostatniej wersji, ignorując zmiany wynikające wyłącznie z wypełnienia akapitów. Każda linia z nowym lub zmienionym tekstem otrzyma | w pierwszej kolumnie. Jednak tekst usunięty nie będzie ani pokazywany, ani oznaczany.
wdiff -1n stary_plik nowy_plik | sed -e 's/^/ /;/{+/s/^ /|/;s/{+//g;s/+}//g'
BŁĘDY¶
Jeśli znajdziesz błąd w wdiff, wyślij proszę list na adres pinard@iro.umontreal.ca. Załącz numer wersji, który możesz uzyskać uruchamiając wdiff --version. W liście załącz dane wejściowe wystarczające do powielenia problemu a także wyjście, jakiego się spodziewałeś.
Obecnie wdiff wywołuje diff. Byłby szybszy i czystszy w implementacji, gdyby był częścią pakietu programów diff.
Oto parę (nie przerobionych) sugestii:
- -
- Zrobić przeniesienie na MS-DOS.
- -
- Wybór opcjami co dokładnie jest białym znakiem.
- -
- Mieć program wpatch. Nie bardzo widać dobry sposób, jak to zrobić.
IDENTIFIKACJA¶
Autor: Francois Pinard, pinard@iro.umontreal.ca
Strona podręcznikowa man: Colin M. Brough, cmb@epcc.ed.ac.uk
Numer wersji: 0.4; Data wydania: 1992/12/21.
ZOBACZ TAKŻE¶
2001/06/13 | GNU |