Hvordan bruke look-kommandoen på Linux

Linux-look-kommandoen løper gjennom en fil og viser alle linjene som begynner med et bestemt ord eller uttrykk. Men pass på! Den oppfører seg forskjellig på forskjellige Linux-distribusjoner. Denne opplæringen viser deg hvordan du bruker den.

Ubuntus utseende Kommando oppfører seg annerledes

For en enkel, men nyttig kommando, ga titt meg absolutt en runde da jeg undersøkte denne artikkelen. Det var to problemer: kompatibilitet og dokumentasjon.

Denne artikkelen ble sjekket med Ubuntu, Fedora og Manjaro. look ble samlet med hver av disse distribusjonene, noe som var flott. Problemet var at oppførselen ikke var den samme på alle tre. Ubuntu-versjonen var veldig annerledes. Ifølge Ubuntu Manpagesbør oppførselen være den samme.

Jeg fant det ut til slutt. utseende bruker tradisjonelt en binært søkmens Ubuntu-look bruker en lineært søk. De elektroniske Ubuntu-mansidene for Bionic Beaver (18.04), Cosmic Cuttlefish (18.10) og Disco Dingo (19.04) sier alle at Ubuntu-versjonen bruker et binært søk, noe som ikke er tilfelle.

Hvis vi tar en titt på den lokale Ubuntu-man-siden, ser vi det tydelig at utseendet deres bruker et lineært søk. Det er et kommandolinjealternativ for å tvinge den til å bruke et binært søk. Ingen av versjonene i de andre distribusjonene har mulighet til å velge mellom søkemetoder.

man look

Når vi ruller ned gjennom man-siden, ser vi delen som beskriver denne versjonen av utseendet ved å bruke et lineært i stedet for binært søk.

  Hvordan installere og bruke Tor-nettleseren på Linux

Moralen i historien er å sjekke de lokale man-sidene først.

Lineært søk kontra binært søk

Den binære søkemetoden er raskere og mer effektiv enn et lineært søk. Arbeid med store filer gjør dette veldig tydelig. Ulempen med det binære søket er at filen din må sorteres. Hvis du ikke vil sortere filen din, sorterer du en kopi av den og bruker den med utseende.

Vi vil demonstrere dette andre steder i denne artikkelen. Bare vær oppmerksom på at på Fedora, Manjaro og jeg forventer det meste av resten av Linux-verdenen, må du lage en sortert kopi av filen din og jobbe med den.

Installere ord

look kan fungere med hvilken som helst tekstfil du velger, eller den kan fungere med den lokale ordbokfilen «ord».

På Manjaro må du installere «words»-filen. Bruk denne kommandoen:

sudo pacman -Syu words

Bruker look

For denne artikkelen vil vi jobbe med en tekstfil av Edward Lear diktet «The Jumblies».

La oss se på innholdet med denne kommandoen:

less the-jumblies.txt

Her er første del av diktet. Merk at vi bruker Ubuntu, så filen forblir usortert. For Fedora og Manjaro ville vi jobbe med en sortert kopi av filen, som vi skal dekke senere i denne artikkelen.

Hvis vi ser etter linjer som starter med ordet «De», finner vi ut noe av det Jumblies gjorde.

look They the-jumblies.txt

look svarer ved å liste opp disse linjene:

  Hvordan spille Project CARS 2 på Linux

Utgang fra

Ignorerer bokstaver

For å få utseende til å ignorere forskjeller mellom store og små bokstaver, bruk -f (ignorer store og små bokstaver). Vi har brukt «de» som søkeord igjen, men denne gangen er det med små bokstaver.

look -f they the-jumblies.txt

Denne gangen inkluderer resultatene en ekstra linje.

Utgang fra

Linjen som begynner med «DE» ble savnet i det siste settet med resultater fordi den står med store bokstaver og ikke samsvarte med søkeordet «De».

Ved å ignorere store og små bokstaver kan utseende inkludere det i resultatene.

Bruke look med en sortert fil

Hvis Linux-distribusjonen din har en versjon av utseende som følger den tradisjonelle oppførselen til å bruke et binært søk, må du enten sortere filen eller jobbe med en sortert kopi av den.

La oss gjenta kommandoen for å søke etter «De», men denne gangen på Manjaro.

Som du kan se, ble ingen resultater returnert. Men vi vet at det er linjer i diktet som starter med ordet «De».

La oss lage en sortert kopi av filen. Hvis du skal bruke alternativene -f (ignorer store og små bokstaver) eller -d (kun alfanumeriske tegn og mellomrom) med utseende, må du bruke dem når du sorterer filen.

Alternativet -o (utdata) lar deg spesifisere navnet på filen de sorterte linjene skal legges til. I dette eksemplet er det «sorted.txt».

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

La oss se på sorted.txt-filen, og deretter bruke -f og -d alternativene.

  Hvordan organisere listene dine i Linux med Dynalist

Nå får vi resultatene vi forventet.

Vurder kun mellomrom og alfanumerikk

For å få se ignorere alt som ikke er en alfanumerisk tegn eller et mellomrom, bruk alternativet -d (alfanumerisk).

La oss se om det er noen ord som begynner med «Oh.»

look -f oh the-jumblies.txt

Ingen resultater returneres ved utseende.

La oss prøve på nytt og gi looken beskjed om å ignorere alt annet enn alfanumeriske tegn og mellomrom. Det betyr at tegn og symboler, for eksempel tegnsetting, vil bli ignorert.

look -f -d oh the-jumblies.txt

Denne gangen får vi et resultat. Vi fant ikke denne linjen før fordi anførselstegn og utropstegn forvirret søket.

Utgang fra

Spesifisering av avsluttende tegn

Du kan fortelle utseendet til å bruke et spesifikt tegn som det avsluttende tegnet. Vanligvis brukes mellomrom og slutten av linjer som avsluttende tegn.

Alternativet -t (terminate character) lar oss spesifisere tegnet vi vil bruke. I dette eksemplet skal vi bruke apostroftegnet. Vi må sitere det med en skråstrek slik at blikket vet at vi ikke åpner en streng.

Vi siterer også søkeordet fordi det inneholder et mellomrom. Vi leter etter to ord.

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

Resultatene samsvarer med søkeordet, avsluttet av apostrofen vi brukte som avslutningstegn.

Bruke look Without a File

Hvis du ikke oppgir et filnavn på kommandolinjen, bruker du utseendet ordfilen.

Kommandoen:

gir disse resultatene:

Dette er alle ordene i filen som begynner med ordet «sirkel».

se ikke lenger

Det er alt som er å se.

Det er ganske enkelt når du vet at det er forskjellig oppførsel på tvers av forskjellige Linux-distribusjoner, og du har nådd bunnen av om versjonen din bruker et binært eller lineært søk.