Sådan bruger du look-kommandoen på Linux

Linux-look-kommandoen løber gennem en fil og viser alle de linjer, der begynder med et bestemt ord eller en bestemt sætning. Men pas på! Det opfører sig forskelligt på forskellige Linux-distributioner. Denne tutorial viser dig, hvordan du bruger den.

Ubuntus udseende Kommando opfører sig anderledes

For en enkel, men brugbar kommando, gav kig mig helt sikkert en runde, da jeg undersøgte denne artikel. Der var to problemer: kompatibilitet og dokumentation.

Denne artikel blev kontrolleret ved hjælp af Ubuntu, Fedora og Manjaro. look var bundtet med hver af disse distributioner, hvilket var fantastisk. Problemet var, at adfærden ikke var den samme på tværs af alle tre. Ubuntu-versionen var meget anderledes. Ifølge Ubuntu Manpages, bør adfærden være den samme.

Jeg fandt ud af det til sidst. udseende bruger traditionelt en binær søgning, mens Ubuntu look bruger en lineær søgning. Online Ubuntu-man-siderne for Bionic Beaver (18.04), Cosmic Cuttlefish (18.10) og Disco Dingo (19.04) siger alle, at Ubuntu-versionen bruger en binær søgning, hvilket ikke er tilfældet.

Hvis vi tager et kig på den lokale Ubuntu-man-side, ser vi, at den tydeligt angiver, at deres udseende bruger en lineær søgning. Der er en kommandolinje mulighed for at tvinge den til at bruge en binær søgning. Ingen af ​​versionerne i de andre distributioner har mulighed for at vælge mellem søgemetoder.

man look

Når vi ruller ned gennem man-siden, ser vi sektionen, der beskriver denne version af look ved hjælp af en lineær i stedet for binær søgning.

  Sådan installeres Trojita Mail App på Linux

Moralen i historien er at tjekke de lokale man-sider først.

Lineær søgning versus binær søgning

Den binære søgemetode er hurtigere og mere effektiv end en lineær søgning. Arbejde med store filer gør dette meget tydeligt. Ulempen ved den binære søgning er, at din fil skal sorteres. Hvis du ikke vil sortere din fil, skal du sortere en kopi af den og derefter bruge den med look.

Vi vil demonstrere dette andetsteds i denne artikel. Bare vær opmærksom på, at på Fedora, Manjaro, og jeg forventer det meste af resten af ​​Linux-verdenen, bliver du nødt til at oprette en sorteret kopi af din fil og arbejde med den.

Installation af ord

look kan fungere med enhver tekstfil, du vælger, eller det kan arbejde med den lokale ordbogsfil “ord”.

På Manjaro skal du installere “words”-filen. Brug denne kommando:

sudo pacman -Syu words

Bruger look

Til denne artikel arbejder vi med en tekstfil af Edward Lear digtet “The Jumblies.”

Lad os se på dets indhold med denne kommando:

less the-jumblies.txt

Her er første del af digtet. Bemærk, at vi bruger Ubuntu, så filen forbliver usorteret. For Fedora og Manjaro ville vi arbejde med en sorteret kopi af filen, som vi vil dække senere i denne artikel.

Hvis vi leder efter linjer, der starter med ordet “De”, finder vi ud af noget af, hvad Jumblies gjorde.

look They the-jumblies.txt

look svarer ved at angive disse linjer:

  Sådan udtrækkes rammer fra GIF'er på Linux

Output fra

Ignorerer karaktercase

For at få udseendet til at ignorere forskelle mellem store og små bogstaver, brug -f (ignorer store bogstaver). Vi har brugt “de” som søgeord igen, men denne gang er det med små bogstaver.

look -f they the-jumblies.txt

Denne gang inkluderer resultaterne en ekstra linje.

Output fra

Linjen, der begynder med “DE”, blev savnet i det sidste sæt resultater, fordi den er med store bogstaver og ikke matchede vores søgeord, “De”.

Ved at ignorere store og små bogstaver kan look inkludere det i resultaterne.

Brug af look med en sorteret fil

Hvis din Linux-distribution har en version af udseende, der følger den traditionelle adfærd ved at bruge en binær søgning, skal du enten sortere din fil eller arbejde med en sorteret kopi af den.

Lad os gentage kommandoen for at søge efter “De”, men denne gang på Manjaro.

Som du kan se, blev der ikke returneret nogen resultater. Men vi ved, at der er linjer i digtet, der starter med ordet “De”.

Lad os lave en sorteret kopi af filen. Hvis du vil bruge mulighederne -f (ignorér store og små bogstaver) eller -d (kun alfanumeriske tegn og mellemrum) med look, skal du bruge dem, når du sorterer filen.

Indstillingen -o (output) giver dig mulighed for at angive navnet på den fil, som de sorterede linjer skal tilføjes. I dette eksempel er det “sorted.txt.”

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

Lad os se på sorted.txt-filen og derefter bruge -f og -d mulighederne.

  Sådan bruger du tidskommandoen på Linux

Nu får vi de resultater, vi forventede.

Overvej kun mellemrum og alfanumeriske tegn

At få udseende til at ignorere noget, der ikke er en alfanumerisk tegn eller et mellemrum, brug indstillingen -d (alfanumerisk).

Lad os se, om der er nogle ord, der starter med “Åh.”

look -f oh the-jumblies.txt

Ingen resultater returneres ved blik.

Lad os prøve igen og fortælle look at ignorere alt andet end alfanumeriske tegn og mellemrum. Det betyder, at tegn og symboler, såsom tegnsætning, vil blive ignoreret.

look -f -d oh the-jumblies.txt

Denne gang får vi et resultat. Vi fandt ikke denne linje før, fordi anførselstegn og udråbstegn forvirrede søgningen.

Output fra

Angivelse af det afsluttende tegn

Du kan fortælle look at bruge et bestemt tegn som det afsluttende tegn. Normalt bruges mellemrum og slutningen af ​​linjer som det afsluttende tegn.

Indstillingen -t (terminate character) giver os mulighed for at specificere det tegn, vi gerne vil bruge. I dette eksempel skal vi bruge apostrofkarakteren. Vi er nødt til at citere det med en skråstreg, så det udseende ved, at vi ikke åbner en streng.

Vi citerer også søgetermen, fordi den indeholder et mellemrum. Vi søger efter to ord.

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

Resultaterne matcher søgeordet, afsluttet af den apostrof, vi brugte som det afsluttende tegn.

Brug look Without a File

Hvis du ikke angiver et filnavn på kommandolinjen, skal du bruge look ordfilen.

Kommandoen:

giver disse resultater:

Dette er alle ordene i filen, der begynder med ordet “cirkel”.

stop med at lede

Det er alt, der er at se.

Det er ret nemt, når du først ved, at der er forskellig adfærd på tværs af forskellige Linux-distributioner, og du har nået bunden, om din version bruger en binær eller lineær søgning.