Komendy Linux: Porównywanie plików

Porównywanie plików lub zakresów bajtów

 

Narzędzie cmp służy do porównywania dwóch plików dowolnego typu i wyświetlenia rezultatu tego porównania na standardowym wyjściu. W przypadku, gdy pliki są takie same, rezultat polecenia

jest pusty. W przypadku gdy następuje różnica, numerowanie wierszy, w których wystąpiły, zaczyna się od tego wiersza.

 

[email protected]:~$ cmp plik1.txt plik2.txt

plik1.txt plik2.txt różnią się: bajt 6, linia 1

 

-c, --print-chars

W celu wypisania znaków, które różnią się w pliku, należy użyć tej opcji. Dzięki temu uzyskamy pełen spis różnic pomiędzy plikami.

 

[email protected]:~$ cmp -c plik1.txt plik2.txt

plik1.txt plik2.txt różnią się: bajt 6, linia 1 zawiera 61 I 622 L

 

- i [wartość], --ignore-initial [wartość]

Ignorowanie różnic w ilości początkowych bajtów każdego pliku dokonuje się za pomocą parametru - i . Jeżeli plik jest krótszy od ilości bajtów, którą podaliśmy, wówczas nic nie zostanie wyświetlone.

 

[email protected]:~$ cmp -i 0 plik1.txt plik2.txt

plik1.txt plik2.txt różnią się: bajt 6, linia 1

[email protected]:~$ cmp -i 20 plik1.txt plik2.txt

[email protected]:~$

 

-l, --verbose

Wypisywanie różnicy pomiędzy plikami w postaci numerów bajtów i wartości różniących się bajtów jest możliwe dzięki zastosowaniu specjalnego parametru.

 

[email protected]:~$ cmp -l plik1.txt plik2.txt

1 19 19

2 40 23

3 55 53

4 123 324 (...)

 

-s , --quiet , --silent

W celu niewypisywania wszystkich poszczególnych różnic w plikach, a jedynie zwrócenia informacji, czy pliki się różnią, należy użyć opcji - s.

 

[email protected]:~$ cmp -s plik1.txt plik2.txt