Sådan finder du tekst i filer i Linux

How Find Text Files Linux

For en systemadministrator er arbejde med tekstfiler et almindeligt fænomen. Måske skal du finde et specifikt afsnit fra bunker af logfiler til fejlfinding af noget? Eller skal du hurtigt finde det dokument, der indeholder vigtige oplysninger?

I tilfælde af Linux er der mange metoder til at finde tekster i filer. Det er muligt at bruge både indbyggede værktøjer og tredjepartsapps. Se, hvordan du finder tekster i filer i Linux.







Find tekst i filer

Afhængigt af antallet af filer, du skal udføre en søgning på, er der to måder at udføre tekstsøgningen på: automatiseret eller manuel. Hvis du skal arbejde med et par tekstfiler, er den manuelle søgning mere egnet. Men hvis der er hundredvis af tekstfiler, så er den automatiske søgning den mest effektive.



Til automatisk søgning bruger vi grep. Grep er forudinstalleret på enhver Linux distro. Hvad angår manuel søgning, vil enhver moderne tekstredigerer gøre jobbet.



Find tekst i filer ved hjælp af grep

I Linux er grep standardværktøjet til søgning efter tekster. Dets navn stammer fra ed -kommandoen g/re/p, der står for global søgning efter et regulært udtryk og udskriv matchende linjer. Den er tilgængelig på enhver moderne Linux -distro.





Grep er et kommandolinjeværktøj. Dens kommandostruktur er som følger.

$greb <mulighed> <almindelig udtryk> <fil_sti>

Som navnet på grep antyder, beskrives det mønster, der skal søges efter, ved hjælp af et regulært udtryk. Det regulære udtryk er en særlig type streng, der beskriver et mønster, der skal matches, lokaliseres og administreres. For at lære mere om grep og regulært udtryk, tjek ud ved hjælp af grep og egrep med regulært udtryk .



For demonstrationsformål, tag en prøvetekstfil. I dette eksempel skal du downloade GNU General Public License v3.0 tekstfil .

Grundlæggende søgning

Den grundlæggende måde at bruge grep på er at søge efter en grundlæggende streng.

Tag et kig på følgende grep -kommando. Det vil søge efter ordet GNU i tekstfilen.

$greb 'GNU'lpg-3.0.txt

For at vise linjenummeret skal du bruge -n -flaget.

$greb -nGNU gpl-3.0.txt

For at udføre en let og ufølsom søgning ved hjælp af grep skal du bruge -i -flaget.

$greb -nignu gpl-3.0.txt

Du vil måske ikke se søgematchene, men kun filnavnet, hvor matchningen skete i nogle situationer. Hvis du kun vil udskrive filnavnet, skal du bruge -l -flaget. Her angiver stjernen at bruge alle tekstfilerne i det aktuelle bibliotek.

$greb -detgnu*

Vi kan også lede output fra andre kommandoer til grep.

$katlpg-3.0.txt| greb -nGNU

Almindelig udtryk

Regex tilbyder en smart måde at finjustere søgningen på. Det har sine egne regler. Imidlertid implementerer forskellige applikationer og programmeringssprog forskelligt regulært udtryk. Her er et par eksempler, som du kan bruge med grep.

For at definere, at strengen skal findes ved start af en linje, skal du bruge tegnet (^) symbolet.

$greb -n^ GNU gpl-3.0.txt

For at definere, at strengen skal findes i slutningen af ​​en linje, skal du bruge dollartegnet ($).

$greb -ntil $ gpl-3.0.txt

For at beskrive, at der kan være et hvilket som helst tegn på et bestemt sted i mønsteret, skal du bruge punktumstegnet (.). Eksempelvis er udtrykket G.U gyldigt, hvis der er et tegn mellem G og U.

$greb -nG.U gpl-3.0.txt

For at beskrive, at der kan være en undersæt af tegn på et bestemt sted i mønsteret, skal du bruge parenteserne ([]). Eksempelvis fortæller udtrykket t [wo] o, at matchningen er gyldig for to og også kun.

$greb -nt[Hvor]o gpl-3.0.txt

Udvidet regulært udtryk

Som navnet antyder, kan et udvidet regulært udtryk gøre mere komplekse ting end grundlæggende regulære udtryk. Hvis du vil bruge udvidet regulært udtryk med grep, skal du bruge -E -flag.

$greb -Født <forlænget_regex> <fil>

Brug OR -operatorerne (|) til at søge efter to forskellige strenge.

$greb -FødtGNU|generel|Licens gpl-3.0.txt

Find tekst i filer

Nu kommer hoveddelen. I stedet for manuelt at fortælle grep filen om at udføre søgningen på, kan grep gøre det automatisk. I den følgende kommando vil grep bruge alle de tilgængelige tekstfiler i det aktuelle bibliotek til at søge i mønsteret.

$greb <regex> *

Hvis du vil grep for at udføre søgningen i et andet bibliotek, skal du angive placeringen.

$greb <regex> <bibliotek_sti>

Hvis der er mapper, udforsker grep dem ikke som standard. For at fortælle grep at søge rekursivt skal du bruge -R -flag.

$greb -nR <regex> <bibliotek_sti>

Greb GUI

Hvis du foretrækker at arbejde med GUI, men stadig gerne vil nyde greps funktioner, kan du tjekke searchmonkey. Det er en front-end løsning til grep. Pakken er tilgængelig på næsten alle de store Linux -distros.

Find tekst i filer ved hjælp af nano

GNU Nano er en enkel og kraftfuld tekst editor, der følger med enhver Linux distro. Det har indbyggede funktioner til at søge efter tekst i en tekstfil.

Bemærk, at i denne metode skal du åbne tekstfilen og søge manuelt. Det kan lade sig gøre, hvis der kun er en håndfuld tekstfiler at arbejde med. Hvis der er mere, er brug af grep det mest optimale valg.

Åbn tekstfilen i nano.

$nano <fil_sti>

Hvis du vil søge efter et strengmatch, skal du trykke på Ctrl + W. Når du har indtastet den streng, du vil søge efter, skal du trykke på Enter.

Find tekst i filer ved hjælp af Vim

Vim er en velkendt og kendt tekstredaktør. Det er kommandolinjevægten til en moderne tekstredigerer. Vim leveres med adskillige avancerede funktioner som plugins, makroer, automatisk komplettering, filtre osv.

Ligesom nano fungerer Vim med en enkelt fil ad gangen. Hvis du har flere tekstfiler, er grep den mest optimale vej at gå.

For at søge i en tekstfil skal du først åbne den i Vim.

$jeg kom <fil_sti>

Indtast følgende Vim -kommando, og tryk på Enter.

$:/<søgeterm>

Find tekst i filer ved hjælp af GNOME Text Editor

GNOME Text Editor er teksteditoren, der følger med GNOME -skrivebordet. Det er en forenklet teksteditor med alle de grundlæggende funktioner, du ville forvente. Det er et godt alternativ til kommandolinjens tekstredaktører.

Ligesom nano og vim gælder den samme forsigtighed for denne metode. Hvis antallet af tekstfiler er stort, skal du hellere holde dig til grep.

Åbn tekstfilen i Teksteditor. Tryk på Ctrl + F for at åbne søgelinjen.

Find tekst i filer ved hjælp af VS -kode

Visual Studio Code er en kraftfuld tekst editor med masser af funktioner. Det er optimeret til, at programmører kan bruges, som om det er en fuldgyldig IDE. Den er tilgængelig på næsten alle de store Linux -distros.

Installer Visual Studio Code snap -pakken.

$sudosnapinstallerekode-klassisk

Åbn tekstfilen i VS -kode. Tryk på Ctrl + F for at starte søgningen.

Endelige tanker

Der er mange måder at søge efter tekst i filer på. Det er en let opgave at mestre. Det anbefales kraftigt at mestre grep-kommandoen, fordi den giver mest værdi med hensyn til effektivitet og brugervenlighed.

Hvis du foretrækker GUI, er der mange tekstredigerere at vælge imellem. Enhver moderne tekstredigerer giver mulighed for tekstsøgning.

God computing!