Jak používat příkaz look v systému Linux

Příkaz vzhledu Linuxu prochází souborem a vypisuje všechny řádky, které začínají konkrétním slovem nebo frází. Ale pozor! V různých distribucích Linuxu se chová odlišně. Tento tutoriál vám ukáže, jak jej používat.

Vzhled Ubuntu Příkaz se chová jinak

Když jsem zkoumal tento článek, byl jsem jednoduchým, ale užitečným příkazem. Byly zde dva problémy: kompatibilita a dokumentace.

Tento článek byl zkontrolován pomocí Ubuntu, Fedory a Manjaro. vzhled byl součástí každé z těchto distribucí, což bylo skvělé. Problém byl v tom, že chování nebylo u všech tří stejné. Verze Ubuntu byla velmi odlišná. Podle Manuálové stránky Ubuntu, chování by mělo být stejné.

Nakonec jsem na to přišel. vzhled tradičně používá a binární vyhledávání, zatímco vzhled Ubuntu používá a lineární vyhledávání. Online manuálové stránky Ubuntu pro Bionic Beaver (18.04), Cosmic Cuttlefish (18.10) a Disco Dingo (19.04) všechny říkají, že verze Ubuntu používá binární vyhledávání, což není tento případ.

Pokud se podíváme na místní manuálovou stránku Ubuntu, vidíme, že jasně uvádí, že jejich vzhled používá lineární vyhledávání. Existuje možnost příkazového řádku, která jej přinutí používat binární vyhledávání. Žádná z verzí v ostatních distribucích nemá možnost volby mezi metodami vyhledávání.

man look

Při procházení manuálovou stránkou dolů vidíme část, která popisuje tuto verzi vzhledu pomocí lineárního namísto binárního vyhledávání.

  7 nejlepších nástrojů Správce úloh pro Linux

Morálka příběhu je nejprve zkontrolovat místní manuálové stránky.

Lineární vyhledávání versus binární vyhledávání

Binární metoda vyhledávání je rychlejší a efektivnější než lineární vyhledávání. Při práci s velkými soubory je to velmi patrné. Nevýhodou binárního vyhledávání je, že váš soubor musí být tříděn. Pokud nechcete svůj soubor třídit, seřaďte jeho kopii a poté ji použijte s lookem.

To si ukážeme na jiném místě tohoto článku. Jen si uvědomte, že na Fedoře, Manjaru a já očekávám většinu zbytku světa Linuxu budete muset vytvořit seřazenou kopii svého souboru a pracovat s tím.

Instalace slov

look může pracovat s libovolným textovým souborem, který si vyberete, nebo může pracovat se souborem místního slovníku „words“.

Na Manjaro musíte nainstalovat soubor „words“. Použijte tento příkaz:

sudo pacman -Syu words

Použití vzhledu

V tomto článku budeme pracovat s textovým souborem Edward Lear báseň „The Jumblies“.

Podívejme se na jeho obsah pomocí tohoto příkazu:

less the-jumblies.txt

Zde je první část básně. Všimněte si, že používáme Ubuntu, takže soubor zůstane neseřazený. Pro Fedoru a Manjaro bychom pracovali s roztříděnou kopií souboru, které se budeme věnovat později v tomto článku.

  Jak nainstalovat Solus Linux

Pokud budeme hledat řádky, které začínají slovem „oni“, zjistíme něco z toho, co Jumblies udělali.

look They the-jumblies.txt

look odpoví výpisem těchto řádků:

Výstup z

Ignorování znaků případu

Chcete-li, aby vzhled ignoroval rozdíly mezi velkými a malými písmeny, použijte volbu -f (ignorovat malá a velká písmena). Jako hledané slovo jsme znovu použili slovo „oni“, ale tentokrát je zapsáno malými písmeny.

look -f they the-jumblies.txt

Tentokrát výsledky zahrnují řádek navíc.

Výstup z

Řádek začínající „ONI“ byl v poslední sadě výsledků vynechán, protože je celý napsán velkými písmeny a neodpovídal našemu hledanému výrazu „oni“.

Ignorování velikosti písmen umožňuje pohled zahrnout je do výsledků.

Použití vzhledu s seřazeným souborem

Pokud má vaše distribuce Linuxu verzi vzhledu, která se řídí tradičním chováním používání binárního vyhledávání, musíte soubor buď seřadit, nebo pracovat s jeho seřazenou kopií.

Zopakujme příkaz k vyhledání „Oni“, ale tentokrát na Manjaro.

Jak vidíte, nebyly vráceny žádné výsledky. Ale víme, že v básni jsou řádky, které začínají slovem „oni“.

Vytvořme setříděnou kopii souboru. Pokud se chystáte použít volby -f (ignorovat malá a velká písmena) nebo -d (pouze alfanumerické znaky a mezery) s lookem, musíte je použít při třídění souboru.

Volba -o (výstup) umožňuje zadat název souboru, do kterého mají být přidány setříděné řádky. V tomto příkladu je to „sorted.txt“.

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

Použijme pohled na soubor sorted.txt a pak použijte volby -fa -d.

  Jak nastavit řídicí panel serveru Linux pomocí systému Linux Dash

Nyní dostáváme výsledky, které jsme očekávali.

Zvažte pouze mezery a alfanumerické znaky

Chcete-li vypadat, ignorujte vše, co není alfanumerický znak nebo mezeru, použijte volbu -d (alfanumerickou).

Podívejme se, jestli existují nějaká slova, která začínají „Ach“.

look -f oh the-jumblies.txt

Pohledem nejsou vráceny žádné výsledky.

Zkusme to znovu a řekněme looku, aby ignoroval cokoli jiného než alfanumerické znaky a mezery. To znamená, že znaky a symboly, jako je interpunkce, budou ignorovány.

look -f -d oh the-jumblies.txt

Tentokrát máme výsledek. Tento řádek jsme dříve nenašli, protože uvozovky a vykřičník zmátly hledání.

Výstup z

Určení ukončovacího znaku

Můžete říct vzhledu, aby použil konkrétní znak jako ukončovací znak. Obvykle se jako ukončovací znak používají mezery a konce řádků.

Volba -t (ukončit znak) nám umožňuje zadat znak, který bychom chtěli použít. V tomto příkladu použijeme znak apostrof. Musíme to citovat zpětným lomítkem, aby pohled věděl, že neotvíráme řetězec.

Hledaný výraz také citujeme, protože obsahuje mezeru. Hledáme dvě slova.

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

Výsledky odpovídají hledanému výrazu zakončenému apostrofem, který jsme použili jako ukončovací znak.

Použití vzhledu bez souboru

Pokud nezadáte název souboru na příkazovém řádku, použijte look soubor se slovy.

Příkaz:

dává tyto výsledky:

Toto jsou všechna slova v souboru, která začínají slovem „kruh“.

nehledejte dál

To je vše, co je třeba hledat.

Je to docela snadné, jakmile víte, že se různé linuxové distribuce chovají různě, a dostali jste se na dno, zda vaše verze používá binární nebo lineární vyhledávání.