
Het Linux look commando racet door een bestand en somt alle regels op die beginnen met een bepaald woord of een bepaalde zin. Maar pas op! Het gedraagt zich anders op verschillende Linux-distributies. Deze tutorial laat zien hoe je het kunt gebruiken.
Ubuntu’s look Command gedraagt zich anders
Voor een eenvoudige, maar nuttige opdracht: look gaf me zeker de omslag toen ik dit artikel aan het onderzoeken was. Er waren twee problemen: compatibiliteit en documentatie.
Dit artikel is gecontroleerd met Ubuntu, Fedora en Manjaro. look werd gebundeld met elk van die distributies, wat geweldig was. Het probleem was dat het gedrag niet bij alle drie hetzelfde was. De Ubuntu-versie was heel anders. Volgens de Ubuntu Manpages zou het gedrag hetzelfde moeten zijn.
Ik kwam er uiteindelijk achter. look gebruikt traditioneel een binaire zoekopdracht, terwijl Ubuntu look maakt gebruik van een lineaire zoekopdracht. De online Ubuntu-manpages voor Bionic Beaver (18.04), Cosmic Cuttlefish (18.10) en Disco Dingo (19.04) zeggen allemaal dat de Ubuntu-versie een binaire zoekopdracht gebruikt, wat niet het geval is.
Als we kijken naar de lokaal Ubuntu-manpagina, we zien dat het duidelijk hun look maakt gebruik van een lineaire zoekopdracht. Er is een opdrachtregeloptie om het te dwingen een binaire zoekopdracht te gebruiken. Geen van de versies in de andere distributies heeft een optie om te kiezen tussen zoekmethoden.
man look

Als we naar beneden scrollen door de man-pagina, zien we de sectie die deze versie van beschrijft look met een lineaire in plaats van een binaire zoekopdracht.

De moraal van het verhaal is om eerst de lokale manpages te controleren.
Lineair zoeken versus binair zoeken
De binaire zoekmethode is sneller en efficiënter dan een lineaire zoekmethode. Het werken met grote bestanden maakt dit duidelijk. Het nadeel van de binaire zoekopdracht is dat uw bestand moet worden gesorteerd. Als u uw bestand niet wilt sorteren, sorteert u een kopie ervan en gebruikt u dat met look.
We zullen dit elders in dit artikel demonstreren. Houd er rekening mee dat je op Fedora, Manjaro, en ik verwacht het grootste deel van de rest van de Linux-wereld, een gesorteerde kopie van je bestand moet maken en daarmee moet werken.
Woorden installeren
look kan werken met elk tekstbestand dat u kiest, of het kan werken met het lokale woordenboekbestand “woorden”.
Op Manjaro moet u het “woorden” -bestand installeren. Gebruik deze opdracht:
sudo pacman -Syu words

Look gebruiken
Voor dit artikel werken we met een tekstbestand van het Edward Lear-gedicht ‘The Jumblies’.
Laten we de inhoud bekijken met dit commando:
less the-jumblies.txt

Hier is het eerste deel van het gedicht. Merk op dat we Ubuntu gebruiken, dus het bestand blijft ongesorteerd. Voor Fedora en Manjaro zouden we werken met een gesorteerde kopie van het bestand, die we later in dit artikel zullen behandelen.

Als we zoeken naar regels die beginnen met het woord “zij”, zullen we iets ontdekken van wat de Jumblies deden.
look They the-jumblies.txt

look reageert door deze regels op te sommen:

Karaktergevallen negeren
Maken look negeer verschillen tussen hoofdletters en kleine letters, gebruik de -f (negeer hoofdletters) optie. We hebben ‘zij’ weer als zoekwoord gebruikt, maar deze keer is het in kleine letters.
look -f they the-jumblies.txt

Dit keer bevatten de resultaten een extra regel.

De regel die begint met ‘ZIJ’ is gemist in de laatste reeks resultaten omdat deze alleen in hoofdletters staat en niet overeenkomt met onze zoekterm ‘Zij’.
Het negeren van hoofdletters staat toe look om het in de resultaten op te nemen.
Look gebruiken met een gesorteerd bestand
Als je Linux-distributie een versie heeft van look die het traditionele gedrag volgt van het gebruik van een binaire zoekopdracht, moet u uw bestand sorteren of werken met een gesorteerde kopie ervan.
Laten we de opdracht herhalen om naar “They” te zoeken, maar deze keer op Manjaro.
Zoals u kunt zien, zijn er geen resultaten geretourneerd. Maar we weten dat er regels in het gedicht zijn die beginnen met het woord ‘zij’.
Laten we een gesorteerde kopie van het bestand maken. Als u de -f (hoofdlettergebruik negeren) of -d (alleen alfanumerieke tekens en spaties) opties met look, moet u ze gebruiken wanneer u het bestand sorteert.
De -o Met de optie (uitvoer) kunt u de naam specificeren van het bestand waaraan de gesorteerde regels moeten worden toegevoegd. In dit voorbeeld is het “gesorteerd.txt”.
sort -f -d the-jumblies.txt -o sorted.txt

Laten we gebruiken look op het gesorteerde.txt-bestand en gebruik vervolgens de -f en -d opties.

Nu krijgen we de resultaten die we verwachtten.
Houd alleen rekening met spaties en alfanumerieke tekens
Om alles te negeren dat geen alfanumeriek teken of spatie is, gebruikt u de -d (alfanumerieke) optie.
Laten we kijken of er woorden zijn die beginnen met “Oh.”
look -f oh the-jumblies.txt

Er worden geen resultaten geretourneerd door look.
Laten we het opnieuw proberen en laten zien dat alles anders dan alfanumerieke tekens en spaties moet worden genegeerd. Dat betekent dat tekens en symbolen, zoals interpunctie, worden genegeerd.
look -f -d oh the-jumblies.txt

Deze keer krijgen we een resultaat. We hebben deze regel niet eerder gevonden omdat de aanhalingstekens en het uitroepteken de zoekopdracht verwarren.

Specificeren van het afsluitende teken
Je kunt het zien look om een specifiek teken als afsluitend teken te gebruiken. Gewoonlijk worden spaties en het einde van regels gebruikt als afsluitingsteken.
De -t (terminate character) optie stelt ons in staat om het karakter te specificeren dat we willen gebruiken. In dit voorbeeld gaan we het apostrof-teken gebruiken. We moeten het met een schuine streep naar achteren citeren, zodat look weet dat we geen string openen.
We citeren ook de zoekterm omdat deze een spatie bevat. We zoeken naar twee woorden.
look -f -t ' "they call" the-jumblies.txt

De resultaten komen overeen met de zoekterm, beëindigd door de apostrof die we als afsluitingsteken hebben gebruikt.

Look Without a File gebruiken
Als u geen bestandsnaam opgeeft op de opdrachtregel, gebruikt look het woordenbestand.
Het bevel:
geeft deze resultaten:

Dit zijn alle woorden in het bestand die beginnen met het woord ‘cirkel’.
zoek niet verder
Dat is alles wat er is look.
Het is vrij eenvoudig als je eenmaal weet dat er verschillende gedragingen zijn tussen verschillende Linux-distributies, en je hebt het dieptepunt bereikt of je versie een binaire of lineaire zoekopdracht gebruikt.

