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ć.
Spis treści:
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.
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:
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
Tym razem wyniki zawierają dodatkową linię.
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.
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
Spójrzmy na plik sort.txt, a następnie użyj opcji -f i -d.
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
Ż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
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 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
Wyniki pasują do wyszukiwanego terminu zakończonego apostrofem, którego użyliśmy jako znaku kończącego.
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.