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.
Indholdsfortegnelse
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.
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:
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.
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.
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.
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.