Zoek naar tekenreeksen of patronen in platte tekst vanaf de terminal

over zoeken naar snaren of patronen

In het volgende artikel zullen we er enkele zien opdrachtregelprogramma's die worden gebruikt om overeenkomende tekenreeksen of patronen in tekstbestanden te vinden​ Deze tools worden over het algemeen gebruikt in combinatie met reguliere expressies, afgekort als REGEX, dit zijn unieke tekenreeksen om een ​​zoekpatroon te beschrijven.

Reguliere expressies zijn patronen die worden gebruikt om een ​​bepaalde combinatie van tekens binnen een tekstreeks te vinden. Reguliere expressies bieden een zeer flexibele manier om tekstreeksen te zoeken of te herkennen​ Hoewel we in de volgende regels geen reguliere expressies zullen zien, zullen we patronen of strings gebruiken.

Zoek naar strings of patronen vanaf de terminal

Grep-opdracht

Grep is een afkorting voor Wereldwijde reguliere expressie afdrukken​ Dit is een krachtig opdrachtregelprogramma dat handig is bij het zoeken naar een specifieke tekenreeks of patroon in een bestand. Met grep we zullen een breed scala aan functies kunnen gebruiken, zoals die een tijdje geleden een collega ons in deze blog uitlegde.

De syntaxis voor het gebruik van de grep-opdracht is vrij eenvoudig:

grep PATRON [RUTA AL ARCHIVO]

Als u bijvoorbeeld wilt zoeken naar de tekenreeks 'Ubuntu'in een bestand dat we in dit voorbeeld zullen aanroepen text.txt, zonder rekening te houden met het onderscheid tussen hoofdletters en kleine letters, hoeven we in een terminal (Ctrl + Alt + T) alleen het commando uit te voeren:

grep -i tekst

grep -i Ubuntu texto.txt

Commando sed

Dorst is een afkorting voor Stream-editor​ Het is een ander handig hulpmiddel voor de terminal waarmee we tekst in een bestand kunnen manipuleren. Sed zoekt, filtert en vervangt strings in een bepaald bestand.

De opdracht sed drukt standaard de uitvoer af in STDOUT (Standaard output)​ Dit houdt in dat het resultaat van de uitvoering wordt afgedrukt naar de terminal in plaats van te worden opgeslagen in een bestand.

Het Sed-commando kan als volgt worden gebruikt:

sed -OPCIONES COMANDO [RUTA AL ARCHIVO]

Als u bijvoorbeeld alle exemplaren van 'Linux'in een tekst door'Linux', zou het te gebruiken commando het volgende zijn:

Commando sed

sed 's/Linux/GnuLinux/g' texto.txt

Als wat we zoeken is stuur de uitvoer om naar een bestand in plaats van het af te drukken naar de terminal, we gaan het omleidingsteken als volgt gebruiken:

sed 's/Linux/GnuLinux/g' texto.txt > salida.txt

De uitvoer van de opdracht wordt in het bestand opgeslagen output.txt in plaats van op het scherm te worden afgedrukt.

sed opdrachtuitvoer

Om meer opties te zien, kunt u raadpleeg de manpages:

man dorstig

man sed

ack

Ack is een snelle opdrachtregelhulpprogramma geschreven in Perl. Het wordt beschouwd als een vriendelijke vervanging voor het grep-hulpprogramma, wat ook op een visueel aantrekkelijke manier resultaten oplevert.

naar installeer ack in ons systeem zullen we moeten uitvoeren in de terminal (Ctrl + Alt + T):

installeer ack

sudo apt install ack

Het commando Ack zoekt in het bestand of de directory naar de regels die de overeenkomst voor de zoekcriteria bevatten​ Markeer vervolgens de bijbehorende tekenreeks. Deze tool heeft de mogelijkheid om bestanden te onderscheiden op basis van hun extensies.

De syntaxis van het Ack-commando zou ongeveer als volgt zijn

ack [OPCIONES] PATRÓN [RUTA AL ARCHIVO]

Bijvoorbeeld om op de term te zoeken Linux in een bestand zouden we moeten uitvoeren:

commando ack zoeken

ack Linux texto.txt

De zoekfunctie is behoorlijk slim en als de gebruiker geen bestanden of mappen opgeeft, zoekt hij in de huidige map en submappen naar het zoekpatroon.

In het volgende voorbeeld wordt geen bestand of directory opgegeven. Ack detecteert automatisch het beschikbare bestand in de directory en zoekt naar het overeenkomende patroon:

ack zoeken zonder bestand

ack Linux

ripgrep

ripgrep is een platformonafhankelijk hulpprogramma om naar patronen van reguliere expressies te zoeken​ Het is sneller dan alle hierboven genoemde zoekhulpmiddelen en het zoekt recursief in mappen op overeenkomende patronen. Het stelt u ook in staat om naar specifieke bestandstypen te zoeken. Standaard slaat ripgrep binaire bestanden en verborgen bestanden / mappen over.

naar installeer ripgrep op het systeem hoeft u alleen maar de volgende opdracht in de terminal uit te voeren (Ctrl + Alt + T):

ripgrep installatie

sudo apt install ripgrep

De syntaxis voor het gebruik van ripgrep is vrij eenvoudig:

rg [OPCIONES] PATRÓN [RUTA AL ARCHIVO]

Als we de ketting wilden zoeken 'Linux'in bestanden die zich in de huidige directory bevinden, hoeven we alleen het commando uit te voeren:

manrg linux

rg Linux

Om meer opties te zien, kunnen gebruikers man-pagina's:

mens rg

man rg

Zilverzoeker

naar installeer deze tool, in Ubuntu hoeven we alleen een terminal te openen (Ctrl + Alt + T) en het commando te schrijven:

silversearcher-ag installatie

sudo apt install silversearcher-ag

Silver Searcher is een platformonafhankelijke open source-zoekfunctie vergelijkbaar met ack, maar met de nadruk op snelheid​ Het maakt het gemakkelijk om in de kortst mogelijke tijd een specifieke tekenreeks in bestanden te vinden. De te gebruiken syntaxis zou zijn:

ag OPCIONES PATRÓN_DE_BÚSQUEDA /ruta/al/archivo

Om bijvoorbeeld te zoeken naar 'Linux' in het bestand text.txt, zouden we in de terminal moeten schrijven (Ctrl + Alt + T):

zoek met silversearcher

ag Linux texto.txt

Voor meer opties kunnen we de man-pagina's:

man zilverzoeker

man ag

Dit zijn slechts enkele van de meest gebruikte opdrachtregelprogramma's voor het zoeken, filteren en manipuleren van tekst in Linux.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.