W tym artykule wyjaśnimy wykorzystanie polecenia COMM w Linux z szczegółowym wyjaśnieniem.
Jak używać polecenia Comm w Linux
Komenda COMM można użyć do porównania wiersza dwóch plików według linii, ogólnej składni za pomocą polecenia COMM:
$ comm [opcja] plik_name1 plik_name2
Powyższa składnia polecenia wyświetli wynik w trzech kolumnach; Pierwsza kolumna wyświetli unikalne wiersze pliku.
Możemy również użyć niektórych opcji wraz z poleceniem Comm; Niektóre powszechnie używane opcje to:
Opcje | Wyjaśnienie |
-1 | Nie wyświetli pierwszej kolumny wyniku, która zawiera unikalne wiersze pliku1 |
-2 | Nie wyświetli drugiej kolumny wyniku, która zawiera unikalne wiersze pliku2 |
-3 | Nie wyświetli trzeciej kolumny wyniku, która zawiera wspólne linie obu plików; File1 i File2 |
-zamówienie | Sprawdzi, czy wszystkie wiersze obu plików są prawidłowo posortowane lub nie |
-NOCHECK-rzędu | Nie sprawdzi kolejności sortowania i po prostu wyświetli wyniki |
-pomoc | Wyświetli monit o pomocy i wyjdzie |
-wersja | Pokaże wersję informacji i wyjść |
-całkowity | Wyświetli całkowitą liczbę linii obecnych w każdej kolumnie wyniku |
-Z, -ero -delimiter | Wyświetla pliki osobno zamiast kolumn; Wartość zerowych ograniczeń jest zerowa |
-wyjście-delimiter = [dowolny znak] | Zastąpi „przestrzenie” w wynikach, używając znaku, który chcesz tam umieścić |
Aby zrozumieć wszystkie te opcje, rozważymy dwa pliki tekstowe o nazwie; MyTestFile1.TXT i MyTestFile2.TXT, którego zawartość można wyświetlić za pomocą poleceń:
$ cat myTestFile1.tekst
$ cat myTestFile2.tekst
Najpierw porównamy oba pliki za pomocą polecenia COMM bez żadnych opcji, w tym celu musimy użyć polecenia:
$ comm myTestFile1.TXT MyTestFile2.tekst
Jak wiemy, polecenie COMM ma zastosowanie do posortowanych plików, a podane pliki w poleceniu nie są sortowane, więc wygenerowało ostrzeżenia „nie sortowane pliki”, aby usunąć te komentarze, użyjemy „-Nocheck-rzędu” Flaga, która zignoruje sprawdzenie kolejności sortowania i wyświetli wyniki:
$ comm-nocheck-order myTestFile1.TXT MyTestFile2.tekst
Na powyższym obrazie zaznaczyliśmy trzy kolumny w celu lepszego zrozumienia wyników, pierwsza kolumna wyświetlała unikalne linie MyTestFile1.TXT, który jest tylko „Fedora”, druga kolumna wyświetlała unikalne linie MyTestFile2.txt, który jest tylko „debian”, a ostatnia kolumna wyświetlała wspólne linie obu plików. Jeśli chcemy wyświetlić kolumnę 1 (unikalne linie MyTestFile1.TXT) i Kolumna 3 (wspólne linie obu plików), będziemy stłumić kolumnę 2 za pomocą flagi „-2”:
$ comm -2 -Niecheck -rzędu myTestFile1.TXT MyTestFile2.tekst
Podobnie, możemy stłumić zarówno kolumnę 1, kolumnę 2, jak i wyświetlić tylko kolumnę 3 (zawierającą wspólne wiersze obu plików), uruchamiając polecenie:
$ comm -12 -Niecheck -order myTestFile1.TXT MyTestFile2.tekst
Wyjście wyświetliło tylko trzecią kolumnę wyniku, aby znaleźć całkowitą liczbę linii każdej kolumny, użyj polecenia:
$ comm--total-nocheck-order myTestFile1.TXT MyTestFile2.tekst
Aby sprawdzić, czy kolejność sortowania obu plików jest we właściwej kolejności, czy nie, wykonaj polecenie COMM za pomocą flagi „-Check-rzędu”:
$ comm-ceck-rzędu myTestFile1.TXT MyTestFile2.tekst
Wyniki pokazują, że plik 1 nie jest w kolejności sortowanej, ponieważ nazwy plików nie są ułożone alfabetycznie ani w kolejności rosnącej lub zejściowej, podobnie, używana jest flaga „-zero-delimiter”:
$ comm-zero zakończony MyTestFile1.TXT MyTestFile2.tekst
Podobnie możemy użyć „-output-delimiter = **” z poleceniem COMM, aby zastąpić przestrzeń „gwiazdą (*)”:
$ comm --output-delimiter = ** --Nocheck-rzędu MyTestFile1.TXT MyTestFile2.tekst
Aby sprawdzić wersję polecenia Comm:
$ comm --version
Jeśli chcesz dowiedzieć się więcej o poleceniu Comm, możesz sprawdzić jego instrukcję, używając polecenia:
$ Man Comm
Wniosek
Polecenie Comm jest używane do porównania wierszy posortowanych plików w Linux, istnieją również inne sposoby porównywania plików, takich jak polecenie diff i korzystanie z edytora vim. Polecenie COMM jest łatwe w użyciu i zalecane, gdzie pliki zawierają skrypty i potrzebne jest tylko prostsze porównanie. W tym artykule omówiliśmy polecenie COMM i jego różne opcje za pomocą przykładów.