Jak korzystać z polecenia look w systemie Linux

Polecenie Linux look przegląda plik i wyświetla wszystkie wiersze zaczynające się od określonego słowa lub frazy. Ale uważaj! Zachowuje się inaczej w różnych dystrybucjach Linuksa. W tym samouczku dowiesz się, jak z niego korzystać.

Wygląd polecenia Ubuntu zachowuje się inaczej

Dla prostego, ale użytecznego polecenia, spojrzenie z pewnością dało mi obejście tego artykułu. Wystąpiły dwa problemy: zgodność i dokumentacja.

Ten artykuł został sprawdzony przy użyciu Ubuntu, Fedory i Manjaro. look był dołączony do każdej z tych dystrybucji, co było świetne. Problem polegał na tym, że zachowanie nie było takie samo we wszystkich trzech. Wersja Ubuntu była zupełnie inna. Według Manpages Ubuntuzachowanie powinno być takie samo.

W końcu to rozgryzłem. look tradycyjnie używa pliku wyszukiwanie binarne, podczas gdy wygląd Ubuntu używa pliku wyszukiwanie liniowe. Internetowe strony podręcznika Ubuntu dla Bionic Beaver (18.04), Cosmic Cuttlefish (18.10) i Disco Dingo (19.04) mówią, że wersja Ubuntu używa wyszukiwania binarnego, co nie jest prawdą.

Jeśli spojrzymy na lokalną stronę podręcznika Ubuntu, zobaczymy wyraźnie, że ich wygląd wykorzystuje wyszukiwanie liniowe. Istnieje opcja wiersza poleceń, aby wymusić użycie wyszukiwania binarnego. Żadna z wersji w innych dystrybucjach nie ma opcji wyboru między metodami wyszukiwania.

man look

Przewijając stronę podręcznika w dół, widzimy sekcję opisującą tę wersję wyglądu przy użyciu wyszukiwania liniowego zamiast binarnego.

Strona podręcznika dotycząca wyglądu Ubuntu w oknie terminala.

Morał z tej historii polega na tym, aby najpierw sprawdzić lokalne strony podręcznika systemowego.

Wyszukiwanie liniowe a wyszukiwanie binarne

Metoda wyszukiwania binarnego jest szybsza i bardziej wydajna niż wyszukiwanie liniowe. Praca z dużymi plikami sprawia, że ​​jest to bardzo widoczne. Wadą wyszukiwania binarnego jest to, że plik musi zostać posortowany. Jeśli nie chcesz sortować pliku, posortuj jego kopię, a następnie użyj jej z wyglądem.

Pokażemy to w innym miejscu tego artykułu. Miej tylko świadomość, że w Fedorze, Manjaro i spodziewam się większości reszty świata Linuksa, będziesz musiał utworzyć posortowaną kopię swojego pliku i pracować z tym.

Instalowanie słów

look może działać z dowolnym wybranym plikiem tekstowym lub z lokalnym plikiem słownika „words”.

Na Manjaro musisz zainstalować plik „słów”. Użyj tego polecenia:

sudo pacman -Syu words

Używanie wyglądu

W tym artykule będziemy pracować z plikiem tekstowym Edward Lear wiersz „Jumblies”.

Spójrzmy na jego zawartość za pomocą tego polecenia:

less the-jumblies.txt

Oto pierwsza część wiersza. Zauważ, że używamy Ubuntu, więc plik pozostaje nieposortowany. W przypadku Fedory i Manjaro pracowalibyśmy z posortowaną kopią pliku, którą omówimy w dalszej części tego artykułu.

Jeśli poszukamy wierszy zaczynających się od słowa „Oni”, dowiemy się, co zrobili Jumblies.

look They the-jumblies.txt

look odpowiada, wymieniając te linie:

Wyjście z

Ignorowanie wielkości liter

Aby wygląd ignorował różnice między dużymi i małymi literami, użyj opcji -f (ignoruj ​​wielkość liter). Ponownie użyliśmy „oni” jako słowa wyszukiwania, ale tym razem jest to zapisane małymi literami.

look -f they the-jumblies.txt

spójrz-jeśli oni-jumblies.txt w oknie terminala.

Tym razem wyniki zawierają dodatkową linię.

Wyjście z

W ostatnim zestawie wyników pominięto wiersz zaczynający się od „ONI”, ponieważ jest on pisany wielkimi literami i nie pasuje do wyszukiwanego hasła „Oni”.

Ignorowanie wielkości liter pozwala spojrzeć na uwzględnienie jej w wynikach.

Używanie wyglądu z posortowanym plikiem

Jeśli Twoja dystrybucja Linuksa ma wersję wyglądu zgodną z tradycyjnym zachowaniem wyszukiwania binarnego, musisz albo posortować plik, albo pracować z jego posortowaną kopią.

Powtórzmy polecenie wyszukania „Oni”, ale tym razem na Manjaro.

zobacz The-jumblies.txt w oknie terminala.

Jak widać, żadne wyniki nie zostały zwrócone. Ale wiemy, że w wierszu są wersety zaczynające się od słowa „Oni”.

Zróbmy posortowaną kopię pliku. Jeśli zamierzasz używać opcji -f (ignoruj ​​wielkość liter) lub -d (tylko znaki alfanumeryczne i spacje) z wyglądem, musisz ich użyć podczas sortowania pliku.

Opcja -o (wyjście) pozwala określić nazwę pliku, do którego mają zostać dodane posortowane wiersze. W tym przykładzie jest to „sort.txt”.

sort -f -d the-jumblies.txt -o sorted.txt

sort -f -d the-jumblies.txt -o sort.txt w oknie terminala.

Spójrzmy na plik sort.txt, a następnie użyj opcji -f i -d.

sort -f -d the-jumblies.txt -o sort.txt w oknie terminala.

Teraz otrzymujemy oczekiwane wyniki.

Rozważ tylko spacje i znaki alfanumeryczne

Aby wyglądać zignorować wszystko, co nie jest znak alfanumeryczny lub spację, użyj opcji -d (alfanumeryczne).

Zobaczmy, czy są jakieś słowa zaczynające się od „Och”.

look -f oh the-jumblies.txt

zobacz -f oh the-jumblies.txt w oknie terminala.

Żadne wyniki nie są zwracane przez wygląd.

Spróbujmy ponownie i powiedzmy look, aby ignorował wszystko inne niż znaki alfanumeryczne i spacje. Oznacza to, że znaki i symbole, takie jak interpunkcja, będą ignorowane.

look -f -d oh the-jumblies.txt

zobacz -f -d oh the-jumblies.txt w oknie terminala.

Tym razem otrzymujemy wynik. Nie znaleźliśmy wcześniej tego wiersza, ponieważ cudzysłowy i wykrzyknik myliły wyszukiwanie.

Wyjście z

Określanie znaku kończącego

Możesz powiedzieć look, aby użyć określonego znaku jako znaku kończącego. Zwykle jako znak zakończenia używa się spacji i końca linii.

Opcja -t (znak zakończenia) pozwala nam określić znak, którego chcielibyśmy użyć. W tym przykładzie użyjemy apostrofu. Musimy zacytować go z ukośnikiem w tył, aby wyglądało na to, że nie otwieramy ciągu.

Cytujemy również wyszukiwane hasło, ponieważ zawiera spację. Szukamy dwóch słów.

look -f -t ' "they call" the-jumblies.txt

wygląd -f -t '

Wyniki pasują do wyszukiwanego terminu zakończonego apostrofem, którego użyliśmy jako znaku kończącego.

Wyjście z

Korzystanie z wyglądu bez pliku

Jeśli nie podasz nazwy pliku w wierszu poleceń, look używa plik słów.

Komenda:

daje następujące wyniki:

To są wszystkie słowa w pliku, które zaczynają się od słowa „kółko”.

nie szukaj dalej

To wszystko, co można zobaczyć.

Jest to całkiem proste, gdy wiesz, że istnieją różne zachowania w różnych dystrybucjach Linuksa i zorientowałeś się, czy twoja wersja korzysta z wyszukiwania binarnego czy liniowego.