Polecenie Linux look przegląda plik i wyświetla wszystkie wiersze, które zaczynają się od określonego słowa lub frazy. Należy jednak pamiętać, że jego działanie może różnić się w zależności od dystrybucji Linuksa. W tym samouczku dowiesz się, jak skutecznie korzystać z tego polecenia.
Wygląd polecenia w Ubuntu
Chociaż look jest prostym i przydatnym poleceniem, zauważyłem różnice w jego działaniu w różnych dystrybucjach. W moich testach z użyciem Ubuntu, Fedory i Manjaro okazało się, że look jest dołączony do każdej z tych dystrybucji, co jest pozytywną informacją. Niestety, zachowanie polecenia różni się w tych systemach. Wersja Ubuntu posiada zupełnie inne działanie. Zgodnie z dokumentacją Ubuntu, zachowanie powinno być identyczne.
Ostatecznie odkryłem, że tradycyjnie look korzysta z wyszukiwania binarnego, podczas gdy wersja Ubuntu wykorzystuje wyszukiwanie liniowe. Dokumentacja online dla Ubuntu Bionic Beaver (18.04), Cosmic Cuttlefish (18.10) i Disco Dingo (19.04) twierdzi, że wersja Ubuntu używa wyszukiwania binarnego, co nie jest zgodne z prawdą.
Sprawdzając lokalną stronę podręcznika Ubuntu, można zauważyć, że ich wersja look korzysta z wyszukiwania liniowego. Istnieje jednak opcja wiersza poleceń, która pozwala wymusić użycie wyszukiwania binarnego, co nie jest dostępne w innych dystrybucjach.
man look
Przewijając stronę podręcznika, można znaleźć sekcję opisującą działanie tej wersji look przy użyciu wyszukiwania liniowego zamiast binarnego.
Morał z tej historii to, aby zawsze sprawdzać lokalne strony podręcznika systemowego.
Wyszukiwanie liniowe a wyszukiwanie binarne
Metoda wyszukiwania binarnego jest znacznie szybsza i bardziej efektywna w przypadku dużych plików. Wadą wyszukiwania binarnego jest to, że plik musi być posortowany. Jeśli nie chcesz sortować oryginalnego pliku, możesz utworzyć jego posortowaną kopię i użyć jej z poleceniem look.
W dalszej części artykułu przedstawimy, jak to zrobić. Warto jednak wiedzieć, że w Fedorze, Manjaro i prawdopodobnie w większości innych dystrybucji Linuksa, konieczne będzie utworzenie posortowanej kopii pliku, z którym chcesz pracować.
Instalowanie pliku „words”
Polecenie look może pracować z dowolnym wybranym plikiem tekstowym lub z lokalnym plikiem słownika „words”.
W systemie Manjaro konieczne jest zainstalowanie pliku „words”. Możesz to zrobić za pomocą następującego polecenia:
sudo pacman -Syu words
Używanie polecenia look
W tym artykule będziemy pracować z plikiem tekstowym Edward Lear i jego wierszem „Jumblies”.
Możesz sprawdzić zawartość pliku za pomocą polecenia:
less the-jumblies.txt
Poniżej znajduje się pierwsza część wiersza. Zauważ, że w tym przypadku korzystamy z Ubuntu, więc plik pozostaje nieposortowany. W przypadku Fedory i Manjaro pracowalibyśmy z posortowaną kopią pliku, co omówimy w dalszej części artykułu.
Aby znaleźć wiersze zaczynające się od słowa „Oni”, użyjemy polecenia:
look They the-jumblies.txt
Polecenie look odpowiada, wyświetlając odpowiednie linie:
Ignorowanie wielkości liter
Aby polecenie look ignorowało różnice między dużymi i małymi literami, użyj opcji -f
(ignoruj wielkość liter). Tym razem użyjemy „oni” jako słowa wyszukiwania, ale zapiszemy je małymi literami:
look -f they the-jumblies.txt
Tym razem wyniki będą zawierały dodatkową linię.
W ostatnim zestawie wyników pominięto wiersz zaczynający się od „ONI”, ponieważ jest on zapisany wielkimi literami i nie pasuje do wyszukiwanego hasła „Oni”. Ignorowanie wielkości liter pozwala na uwzględnienie jej w wynikach.
Używanie look z posortowanym plikiem
Jeśli Twoja dystrybucja Linuksa ma wersję look działającą zgodnie z tradycyjnym zachowaniem wyszukiwania binarnego, musisz albo posortować plik, albo pracować z jego posortowaną kopią.
Ponownie użyjemy polecenia, aby wyszukać „Oni”, tym razem w systemie Manjaro:
Jak widać, żadne wyniki nie zostały zwrócone, ale wiemy, że w wierszu znajdują się wersety zaczynające się od słowa „Oni”.
Utwórzmy posortowaną kopię pliku. Jeśli planujesz używać opcji -f
(ignoruj wielkość liter) lub -d
(tylko znaki alfanumeryczne i spacje) z look, musisz je zastosować podczas sortowania pliku.
Opcja -o
(wyjście) pozwala określić nazwę pliku, do którego mają zostać dodane posortowane wiersze. W tym przykładzie będzie to „sort.txt”.
sort -f -d the-jumblies.txt -o sorted.txt
Sprawdźmy zawartość pliku sort.txt, a następnie użyjmy opcji -f
i -d
.
Teraz otrzymujemy oczekiwane wyniki.
Rozważ tylko spacje i znaki alfanumeryczne
Aby look ignorował wszystko, co nie jest znakiem alfanumerycznym lub spacją, użyj opcji -d
(alfanumeryczne).
Sprawdźmy, czy wiersze zaczynające się od „Och” są obecne:
look -f oh the-jumblies.txt
Wyniki nie są zwracane przez polecenie look.
Sprawdźmy ponownie i polećmy, 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
Tym razem otrzymujemy wynik. Nie znaleźliśmy wcześniej tego wiersza, ponieważ cudzysłowy i wykrzyknik myliły wyszukiwanie.
Określanie znaku kończącego
Możesz polecić look, aby używał określonego znaku jako znaku kończącego. Zwykle jako znak zakończenia używa się spacji oraz końca linii.
Opcja -t
(znak zakończenia) pozwala określić znak, którego chcesz 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.
Musimy również zacytować wyszukiwane hasło, ponieważ zawiera spację. Szukamy dwóch słów:
look -f -t ' "they call" the-jumblies.txt
Wyniki odpowiadają wyszukiwanemu terminowi zakończonemu apostrofem, którego użyliśmy jako znaku kończącego.
Korzystanie z look bez pliku
Jeśli nie podasz nazwy pliku w wierszu poleceń, look użyje pliku słów.
Wykonaj polecenie:
Otrzymasz następujące wyniki:
To są wszystkie słowa w pliku, które zaczynają się od słowa „kółko”.
Podsumowanie
To wszystko, co można zobaczyć na temat polecenia look.
Jest to całkiem proste, gdy jesteś świadomy różnych zachowań w zależności od dystrybucji Linuksa i wiesz, czy Twoja wersja korzysta z wyszukiwania binarnego czy liniowego.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.