Cum să utilizați comanda look pe Linux

Comanda Linux look trece printr-un fișier și listează toate liniile care încep cu un anumit cuvânt sau expresie. Dar ai grijă! Se comportă diferit pe diferite distribuții Linux. Acest tutorial vă va arăta cum să îl utilizați.

Aspectul Ubuntu Command se comportă diferit

Pentru o comandă simplă, dar utilă, privirea cu siguranță mi-a dat de cap atunci când cercetam acest articol. Au fost două probleme: compatibilitate și documentare.

Acest articol a fost verificat folosind Ubuntu, Fedora și Manjaro. Look a fost inclus cu fiecare dintre aceste distribuții, ceea ce a fost grozav. Problema a fost că comportamentul nu a fost același în toate trei. Versiunea Ubuntu a fost foarte diferită. In conformitate cu Pagini de manual Ubuntu, comportamentul ar trebui să fie același.

Pana la urma mi-am dat seama. look folosește în mod tradițional a căutare binară, în timp ce aspectul Ubuntu folosește un căutare liniară. Paginile de manual Ubuntu online pentru Bionic Beaver (18.04), Cosmic Cuttlefish (18.10) și Disco Dingo (19.04) spun toate că versiunea Ubuntu folosește o căutare binară, ceea ce nu este cazul.

Dacă aruncăm o privire la pagina de manual Ubuntu locală, vedem că arată clar că aspectul lor folosește o căutare liniară. Există o opțiune de linie de comandă pentru a-l forța să utilizeze o căutare binară. Niciuna dintre versiunile din celelalte distribuții nu are opțiune de a alege între metodele de căutare.

man look

Derulând în jos prin pagina de manual, vedem secțiunea care descrie această versiune de aspect folosind o căutare liniară în loc de binară.

  Cum să îmbunătățiți viteza de pornire Linux cu o modificare Grub

Morala poveștii este să verificați mai întâi paginile de manual locale.

Căutare liniară versus căutare binară

Metoda de căutare binară este mai rapidă și mai eficientă decât o căutare liniară. Lucrul cu fișiere mari face acest lucru foarte evident. Dezavantajul căutării binare este că fișierul dvs. trebuie sortat. Dacă nu doriți să sortați fișierul, sortați o copie a acestuia și apoi utilizați-o cu look.

Vom demonstra acest lucru în altă parte în acest articol. Fiți conștienți de faptul că pe Fedora, Manjaro și mă aștept la majoritatea restului lumii Linux, va trebui să creați o copie sortată a fișierului și să lucrați cu asta.

Instalarea cuvintelor

Look poate funcționa cu orice fișier text pe care îl alegeți sau poate funcționa cu fișierul de dicționar local „cuvinte”.

Pe Manjaro trebuie să instalați fișierul „words”. Utilizați această comandă:

sudo pacman -Syu words

Folosind aspectul

Pentru acest articol, vom lucra cu un fișier text al Edward Lear poezia „The Jumblies”.

Să ne uităm la conținutul său cu această comandă:

less the-jumblies.txt

Iată prima parte a poeziei. Rețineți că folosim Ubuntu, așa că fișierul rămâne nesortat. Pentru Fedora și Manjaro, am lucra cu o copie sortată a fișierului, pe care o vom trata mai târziu în acest articol.

Dacă căutăm rânduri care încep cu cuvântul „Ei”, vom afla ceva din ce au făcut Jumblyes.

look They the-jumblies.txt

look răspunde prin enumerarea acestor rânduri:

Ieșire de la

Ignorarea caracterelor majuscule

Pentru a face ca aspectul să ignore diferențele dintre litere mari și minuscule, utilizați opțiunea -f (ignora majuscule). Am folosit din nou „ei” ca cuvânt de căutare, dar de data aceasta este scris cu litere mici.

look -f they the-jumblies.txt

De data aceasta, rezultatele includ o linie suplimentară.

  Cum să omorâți procesele din terminalul Linux

Ieșire de la

Linia care începe cu „EI” a fost omisă în ultimul set de rezultate, deoarece este scrisă cu majuscule și nu se potrivește cu termenul nostru de căutare „Ei”.

Ignorarea majusculelor permite aspectului să o includă în rezultate.

Utilizarea aspectului cu un fișier sortat

Dacă distribuția dvs. Linux are o versiune de aspect care urmează comportamentul tradițional de utilizare a unei căutări binare, trebuie fie să vă sortați fișierul, fie să lucrați cu o copie sortată a acestuia.

Să repetăm ​​comanda pentru a căuta „Ei”, dar de data aceasta pe Manjaro.

După cum puteți vedea, nu au fost returnate rezultate. Dar știm că există versuri în poem care încep cu cuvântul „Ei”.

Să facem o copie sortată a fișierului. Dacă veți folosi opțiunile -f (ignorați majuscule) sau -d (numai caractere alfanumerice și spații) cu aspect, trebuie să le utilizați atunci când sortați fișierul.

Opțiunea -o (ieșire) vă permite să specificați numele fișierului la care trebuie adăugate liniile sortate. În acest exemplu, este „sorted.txt”.

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

Să folosim uite pe fișierul sorted.txt și apoi să folosim opțiunile -f și -d.

Acum, obținem rezultatele la care ne așteptam.

Luați în considerare doar spațiile și cifrele alfanumerice

A face să arate să ignore orice nu este un caracter alfanumeric sau un spațiu, utilizați opțiunea -d (alfanumeric).

Să vedem dacă există cuvinte care încep cu „Oh”.

look -f oh the-jumblies.txt

Nu se returnează niciun rezultat prin privire.

Să încercăm din nou și să spunem lui Look să ignore orice altceva decât caracterele alfanumerice și spațiile. Aceasta înseamnă că caracterele și simbolurile, cum ar fi semnele de punctuație, vor fi ignorate.

look -f -d oh the-jumblies.txt

De data aceasta, obținem un rezultat. Nu am găsit acest rând înainte, deoarece ghilimelele și semnul de exclamare au încurcat căutarea.

  Cum să vă conectați la servere pe Linux cu managerul de fișiere KDE

Ieșire de la

Specificarea caracterului final

Îți poți spune look-ului să folosească un anumit caracter ca caracter final. De obicei, spațiile și sfârșitul rândurilor sunt folosite ca caracter final.

Opțiunea -t (termină caracterul) ne permite să specificăm caracterul pe care dorim să-l folosim. În acest exemplu, vom folosi caracterul apostrof. Trebuie să-l citam cu o bară oblică înapoi, astfel încât acel aspect să știe că nu deschidem un șir.

Cităm și termenul de căutare deoarece include un spațiu. Căutăm două cuvinte.

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

Rezultatele se potrivesc cu termenul de căutare, terminat de apostroful pe care l-am folosit ca caracter final.

Folosind look Without a File

Dacă nu furnizați un nume de fișier pe linia de comandă, uitați utilizări dosarul cuvintelor.

Comanda:

dă următoarele rezultate:

Acestea sunt toate cuvintele din fișier care încep cu cuvântul „cerc”.

Nu mai căuta

Asta e tot ce trebuie să te uiți.

Este destul de ușor odată ce știi că există comportamente diferite în diferite distribuții Linux și ai stabilit dacă versiunea ta folosește o căutare binară sau liniară.