Hur man hittar text i filer i Linux

How Find Text Files Linux



För en systemadministratör är arbete med textfiler ett vanligt fenomen. Kanske måste hitta ett specifikt avsnitt från högar med loggfiler för att felsöka något? Eller behöver du snabbt hitta dokumentet som innehåller viktig information?

När det gäller Linux finns det många metoder för att hitta texter i filer. Det är möjligt att använda både inbyggda verktyg och tredjepartsappar. Kolla in hur du hittar texter i filer i Linux.







Hitta text i filer

Beroende på antalet filer du måste utföra en sökning på finns det två sätt att utföra textsökningen: automatiserad eller manuell. Om du måste arbeta med ett par textfiler är den manuella sökningen mer lämplig. Men om det finns hundratals textfiler är den automatiska sökningen den mest effektiva.



För automatisk sökning använder vi grep. Grep är förinstallerad på alla Linux distro. När det gäller manuell sökning kommer alla moderna textredigerare att göra jobbet.



Hitta text i filer med grep

I Linux är grep standardverktyget för att söka efter texter. Dess namn härrör från ed -kommandot g/re/p som står för global sökning efter ett reguljärt uttryck och skriva ut matchande rader. Den är tillgänglig på alla moderna Linux distro.





Grep är ett kommandoradsverktyg. Dess kommandostruktur är följande.

$grepp <alternativ> <vanligt uttryck> <sökväg>

Som namnet på grep antyder beskrivs mönstret att söka efter med ett reguljärt uttryck. Det reguljära uttrycket är en speciell typ av sträng som beskriver ett mönster som ska matchas, lokaliseras och hanteras. För att lära dig mer om grep och reguljärt uttryck, kolla in med grep och egrep med reguljärt uttryck .



För demonstrationsändamål, ta en exempeltextfil. I det här exemplet, ladda ner GNU General Public License v3.0 textfil .

Grundläggande sökning

Det grundläggande sättet att använda grep är att söka efter en grundsträng.

Ta en titt på följande grep -kommando. Det kommer att söka efter ordet GNU i textfilen.

$grepp 'GNU'lpg-3.0.Text

För att visa radnumret, använd flaggan -n.

$grepp -nGNU gpl-3.0.Text

Om du vill utföra en sökningskänslig sökning med grep använder du -i -flaggan.

$grepp -nignu gpl-3.0.Text

Du kanske inte vill se sökmatchningarna utan bara filnamnet där matchningen hände i vissa situationer. Om du bara vill skriva ut filnamnet använder du -l -flaggan. Här anger asterisken att använda alla textfiler i den aktuella katalogen.

$grepp -degnu*

Vi kan också leda utmatningen från andra kommandon till grep.

$kattlpg-3.0.Text| grepp -nGNU

Vanligt uttryck

Regex erbjuder ett smart sätt att finjustera sökningen. Det har sina egna regler. Men olika applikationer och programmeringsspråk implementerar regelbundna uttryck annorlunda. Här är ett par exempel som du kan använda med grep.

För att definiera att strängen ska hittas vid start av en rad, använd caret -symbolen (^).

$grepp -n^ GNU gpl-3.0.Text

För att definiera att strängen ska hittas i slutet av en rad, använd dollartecknet ($).

$grepp -ntill $ gpl-3.0.Text

För att beskriva att det kan finnas vilket tecken som helst på en viss plats i mönstret, använd punkttecknet (.). Till exempel är uttrycket G.U giltigt om det finns något tecken mellan G och U.

$grepp -nG.U gpl-3.0.Text

För att beskriva att det kan finnas en delmängd av tecken på en viss plats i mönstret, använd parenteserna ([]). Till exempel säger uttrycket t [wo] o att matchningen är giltig för två och för bara.

$grepp -nt[Var]o gpl-3.0.Text

Utökat reguljärt uttryck

Som namnet antyder kan ett utökat reguljärt uttryck göra mer komplexa saker än grundläggande reguljära uttryck. För att använda utökat reguljärt uttryck med grep måste du använda -E -flaggan.

$grepp -född <förlängd_regex> <fil>

Använd OR -operatörerna (|) för att söka efter två olika strängar.

$grepp -föddGNU|allmän|Licens gpl-3.0.Text

Hitta text i filer

Nu kommer huvuddelen. Istället för att manuellt berätta för grep filen att utföra sökningen på, kan grep göra det automatiskt. I följande kommando kommer grep att använda alla tillgängliga textfiler i den aktuella katalogen för att söka efter mönstret.

$grepp <regex> *

Om du vill grep för att utföra sökningen i en annan katalog måste du ange platsen.

$grepp <regex> <directory_path>

Om det finns mappar, utforskar inte grep dem som standard. För att berätta för grep att söka rekursivt, använd -R -flaggan.

$grepp -nR <regex> <directory_path>

Grepp GUI

Om du föredrar att arbeta med GUI men ändå vill njuta av greps funktioner, kolla in sökmonkey. Det är en front-end-lösning för grep. Paketet är tillgängligt på nästan alla större Linuxdistributörer.

Hitta text i filer med nano

GNU Nano är en enkel och kraftfull textredigerare som levereras med alla Linux distro. Den har inbyggda funktioner för att söka efter text i en textfil.

Observera att i denna metod måste du öppna textfilen och söka manuellt. Det går att göra om det bara finns en handfull textfiler att arbeta med. Om det finns mer, är grep det mest optimala valet.

Öppna textfilen i nano.

$nano <sökväg>

Om du vill söka efter en strängmatchning trycker du på Ctrl + W. När du har skrivit strängen som du vill söka efter trycker du på Retur.

Hitta text i filer med Vim

Vim är en välkänd och ansedd textredigerare. Det är kommandoradsekvivalenten till en modern textredigerare. Vim har många avancerade funktioner som plugins, makron, automatisk komplettering, filter etc.

I likhet med nano fungerar Vim med en enda fil åt gången. Om du har flera textfiler är det mest optimala sättet att använda grep.

För att söka i en textfil, öppna den först i Vim.

$jag kom <sökväg>

Ange följande Vim -kommando och tryck på Enter.

$:/<sökterm>

Hitta text i filer med GNOME Text Editor

GNOME Text Editor är textredigeraren som följer med GNOME -skrivbordet. Det är en förenklad textredigerare med alla grundläggande funktioner du kan förvänta dig. Det är ett trevligt alternativ till textredigerarna på kommandoraden.

Liknande nano och vim gäller samma försiktighet för denna metod. Om antalet textfiler är stort är det bättre att hålla sig till grep.

Öppna textfilen i Textredigeraren. Tryck på Ctrl + F för att öppna sökfältet.

Hitta text i filer med VS -kod

Visual Studio Code är en kraftfull textredigerare med massor av funktioner. Det är optimerat för programmerare att användas som om det är en fullvärdig IDE. Den är tillgänglig på nästan alla större Linux -distros.

Installera snap -paketet för Visual Studio Code.

$sudoknäppaInstallerakoda--klassisk

Öppna textfilen i VS -kod. Tryck på Ctrl + F för att börja söka.

Slutgiltiga tankar

Det finns många sätt att söka efter text i filer. Det är en lätt uppgift att bemästra. Det rekommenderas starkt att behärska grep-kommandot eftersom det erbjuder mest värde när det gäller effektivitet och användarvänlighet.

Om du föredrar GUI finns det många textredigerare att välja mellan. Alla moderna textredigerare tillhandahåller alternativet för textsökning.

Lycka till med datorer!