Beginners gids

Hoe een string in een bestand op Linux te vinden

Hoe een string in een bestand op Linux te vinden

Soms moet u een bepaald woord of een tekenreeks in een bestand zoeken. Om dit te doen, heeft bijna elke teksteditor een GUI-implementatie om u te helpen. Maar voor Linux-gebruikers is het veel productiever en handiger om deze zoekopdrachten uit te voeren vanaf de opdrachtregel.

Linux heeft zelfs een krachtig en handig commandoregelprogramma - het grep-commando voor dit doel. Hiermee kunt u naar een bepaalde tekenreeks zoeken, niet alleen in één bestand, maar in meerdere bestanden voor een uitgebreidere zoekopdracht.

Voordat u het grep-commando echter kunt gebruiken, moet u eerst weten hoe het werkt en de syntaxis ervan. En dus, om je te helpen, hebben we een gedetailleerde handleiding samengesteld over het gebruik van het grep-commando om je te helpen strings in een bestand op Linux te vinden. Niet alleen dat, maar we laten u ook zien hoe u naar tekenreeksen in bestanden kunt zoeken via de opdrachtregelteksteditor en de GUI-teksteditor.

Opmerking: Voor deze zelfstudie hebben we twee demotekstbestanden gemaakt - demofile.txt en demofile02.tekst. We zullen het grep-commando gebruiken om strings in deze bestanden te vinden. Hier is een blik op de inhoud van beide bestanden, zodat u weet hoe de opdrachten werken.

Inhoud van demobestand.tekst:

Dit is een demobestand dat ik heb gemaakt voor demonstratiedoeleinden. Dit bevat een heleboel woorden om zinnen te maken die uiteindelijk eindigen met een punt. Dit is voor het grep-voorbeeld.

Inhoud van demofile02.tekst:

Dit is nog een demobestand dat ik voor deze demonstratie zal gebruiken. Deze is vergelijkbaar met de vorige omdat deze drie regels bevat met enkele woorden. Dit tweede bestand zal helpen om een ​​aantal gediversifieerde voorbeelden te geven.

Strings in een bestand zoeken via de opdrachtregel (GREP-methode)

GREP is een afkorting voor Global Regular Expression Print. Het is "Globaal" omdat het je hele Linux-systeem kan doorzoeken. "Reguliere expressie" is wat we het tekstzoekpatroon noemen dat we zullen gebruiken met de opdracht. En "Afdrukken" betekent dat het de zoekresultaten zal afdrukken zodra het een overeenkomst vindt op basis van de opgegeven reguliere expressie.

Nu je een idee hebt van wat het grep-commando is, laten we eens kijken hoe we het kunnen gebruiken. Hier is de syntaxis voor het gebruik van de opdracht grep om een ​​string in een bestand te vinden:

$ grep draad bestandsnaam

U moet de uitdrukking "string" vervangen door de "gewone uitdrukking" die u wilt gebruiken en de "bestandsnaam" door de naam van het bestand waarin u naar de tekenreeks wilt zoeken.

#1. GREP gebruiken om een ​​string in één bestand te vinden

Dus, laten we zeggen dat als u wilt zoeken naar het woord "demonstratie" in het bestand "demobestand".txt', moet je deze opdracht gebruiken:

$ grep demonstratie demobestand.tekst

Wat de output geeft:

GREP gebruiken om een ​​string in één bestand te vinden

Zoals je kunt zien, haalt de opdracht de hele regel op die de opgegeven tekenreeks bevat. Als de opgegeven tekenreeks in meerdere regels voorkomt, worden ze allemaal afgedrukt. Laten we eens kijken of het werkt door te zoeken naar de tekenreeks "This" in de "demofile".txt" bestand.

$ grep Deze demofile.tekst

En de uitvoer is:

grep is hoofdlettergevoelig

Merk op hoe je eerst de string "this" hebt gebruikt, en het heeft niets afgedrukt. Pas als je "Dit" invoert, krijg je een match. Onthoud daarom dat het grep-commando hoofdlettergevoelig is.

Om de case te negeren, moet je in plaats daarvan deze opdracht invoeren:

$ grep -ik dit demobestand.tekst

Hoe hoofdletters in grep-commando te negeren

Zoals je nu kunt zien, komt de opdracht, hoewel de opgegeven tekenreeks "this" is, overeen met "This" en drukt dat antwoord af.

#2. GREP gebruiken om dezelfde string in meerdere bestanden te vinden

Om door meerdere bestanden te zoeken naar de opgegeven tekenreeks, hoeft u alleen maar de opdracht toe te voegen aan alle bestandsnamen.

Hier is een voorbeeld. Hier zoeken we naar de string “woorden” in de bestanden “demofile.txt" en "demofile02".tekst":

$ grep woorden demobestand.txt-demobestand02.tekst

En de uitvoer is:

GREP gebruiken om dezelfde string in meerdere bestanden te vinden

Zoals u kunt zien, toont het grep-commando niet alleen het overeenkomende resultaat, maar ook handig een label van welk bestand het afkomstig is.

#3. GREP gebruiken om meerdere strings in meerdere bestanden te vinden

Je kunt grep ook gebruiken om meerdere strings in enkele of meerdere bestanden te vinden. Dit is de syntaxis die u moet gebruiken:

$ grep -E 'patroon1|patroon2|patroon3|… ' bestandsnaam1 bestandsnaam2 bestandsnaam3… 

De optie -E die we hebben ingevoerd, behandelt het volgende patroon als een uitgebreide reguliere expressie, waardoor we naar meerdere tekenreeksen kunnen zoeken.

Laten we nu gebruiken wat we hebben geleerd om te zoeken naar de tekenreeksen "bestand" en "woorden" in de twee bestanden: "demofile.txt" en "demofile02".tekst":

$ grep -E 'bestand|woord' demobestand.txt-demobestand02.tekst

En de uitvoer is:

GREP gebruiken om meerdere strings in meerdere bestanden te vinden

#4. Tips en trucs voor het gebruik van het GREP-commando om strings te vinden

Ondanks zijn algehele eenvoud is het grep-commando extreem krachtig. Hier zijn een paar manieren waarop u het grep-commando kunt gebruiken voor geavanceerde zoekopdrachten naar tekenreeksen.

Wist u bijvoorbeeld dat u het grep-commando met jokertekens kunt gebruiken?? Laten we eens kijken naar deze opdracht:

$ grep woord demobestand*

Wat de output geeft:

grep en wildcards

Zoals u kunt zien, heeft de opdracht gezocht naar en toont nu de resultaten voor beide bestanden "demofile.txt" en "demofile02".tekst". Dit komt omdat we het asterisk (*)-jokerteken hebben gebruikt dat wordt gebruikt om een ​​of meer exemplaren van een willekeurig teken weer te geven.

Voor meer informatie over de verschillende soorten wildcards en hoe u ze kunt gebruiken, kunt u dit lezen: Wildcards in Linux uitgelegd met 10 voorbeelden.

Verderop, de grep-opdracht ondersteunt ook talloze opdrachtopties. We hebben er inmiddels twee gezien:

Er zijn tal van andere grep-opdrachtopties zoals:

Alles wat we tot nu toe hebben besproken, zou voldoende moeten zijn om u te helpen zoeken naar strings in bestanden. Als u echter het GREP-commando onder de knie wilt krijgen, raden we u aan deze twee artikelen te bekijken:

Zoek tekenreeksen in een bestand via de opdrachtregel (met behulp van opdrachtregelteksteditors)

De grep-opdracht is een krachtig hulpmiddel waarmee u geavanceerde zoekopdrachten kunt uitvoeren om strings te matchen met verschillende bestanden en mappen op uw Linux-pc. Als u het bestand echter al hebt geopend in een teksteditor op de opdrachtregel, hoeft u de bestandseditor niet af te sluiten en de opdracht grep te gebruiken.

In feite hebben de meeste teksteditors via de opdrachtregel al een ingebouwde zoekfunctie.

Nu valt het buiten het bestek van deze zelfstudie om elke afzonderlijke teksteditor op de opdrachtregel te behandelen en hoe u tekenreeksen kunt vinden in een bestand dat in die teksteditor is geopend. Als zodanig zullen we kijken naar de twee meest populaire teksteditors voor de opdrachtregel die u zeker zult gebruiken:

Hoe een tekstreeks in nano te vinden?

Laten we zeggen dat je het bestand hebt geopend in de nano-teksteditor. In dat geval hoeft u alleen maar op Ctrl+W te drukken en u zult een nieuwe prompt vinden om de tekenreeks in te typen.

Als je klaar bent, druk je op Enter en de cursor landt op het eerste teken van de eerste keer dat de gezochte tekenreeks voorkomt. Je kunt op Enter blijven drukken om naar de andere stringinstanties te springen, indien van toepassing.

Hoe een tekstreeks in nano te vinden

Hoe vind je een tekststring in vim?

Als u de vim-teksteditor gebruikt, typt u :/ gevolgd door de tekenreeks die u wilt zoeken en drukt u vervolgens op Enter. Net als voorheen, zal het de cursor op het eerste voorkomen van de gezochte tekenreeks plaatsen. Ook hier kun je op Enter blijven drukken om naar de andere instanties van de tekenreeks te gaan.

Hoe vind je een tekststring in vim

Zoek strings in een bestand via de opdrachtregel (GUI-methode)

Er is zelfs een GUI-methode om strings in een bestand te vinden. In wezen is het vergelijkbaar met de functie "zoeken en vervangen" die u te zien krijgt in Microsoft Word; het is echter afhankelijk van de GUI-teksteditor die u gebruikt.

Nu, zoals u weet, zijn er honderden teksteditors, en het is niet praktisch om ze allemaal hier te behandelen. Ze werken echter allemaal op dezelfde manier, dus u zult geen enkel probleem hebben om met anderen te werken als u eenmaal weet hoe een van hen werkt.

Voor deze zelfstudie gebruiken we de standaard teksteditor die bij Ubuntu wordt geleverd, genaamd - "Text Editor.”

String vinden met GUI-teksteditors

Zoals je op de afbeelding kunt zien, hebben we het demobestand geopend.txt op de editor. Nu klikken we op het vervolgkeuzemenu, dat opties voor "Zoeken" en "Zoeken en vervangen" onthult, die we kunnen gebruiken om tekenreeksen in het geopende bestand te vinden.

Afsluiten

Dus dat brengt ons aan het einde van deze korte tutorial over het vinden van strings in een bestand op Linux. We hopen dat je dit nuttig vindt en dat het je heeft geholpen om productiever te worden met hoe je naar specifieke strings op je Linux-systeem zoekt.

Als je vragen hebt, laat ons dan een reactie achter en we zullen je zeker helpen met je vragen.

Als je met Linux begint, vergeet dan niet onze Leer Linux-serie te bekijken. Het staat vol met geweldige tutorials, how-to's en handleidingen, ontworpen voor beginners en meer ervaren gebruikers om je te helpen een echte Linux power user te worden.

OpenTTD versus Simutrans
Je eigen transportsimulatie maken kan leuk, ontspannend en buitengewoon aanlokkelijk zijn. Daarom moet je ervoor zorgen dat je zoveel mogelijk spellen...
OpenTTD-zelfstudie
OpenTTD is een van de meest populaire simulatiegames voor bedrijven die er zijn. In dit spel moet je een geweldig transportbedrijf creëren. U begint e...
SuperTuxKart voor Linux
SuperTuxKart is een geweldige titel die is ontworpen om je de Mario Kart-ervaring gratis te bieden op je Linux-systeem. Het is behoorlijk uitdagend en...