Som namnet på grep antyder beskrivs mönstret att söka efter med ett reguljärt uttryck. Regeluttrycket ä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ära uttryck.
Ta en exempeltextfil för demonstrationsändamål. I det här exemplet laddar du 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 grundläggande sträng.
Ta en titt på följande grep-kommando. Det söker efter ordet ”GNU” i textfilen.
$ grep "GNU" gpl-3.0.Text
För att visa linjenumret, använd flaggan “-n”.
$ grep -n “GNU” gpl-3.0.Text
För att göra en skiftlägeskänslig sökning med grep, använd flaggan “-i”.
$ grep -ni “gnu” gpl-3.0.Text
Du kanske inte vill se sökmatcherna 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 alla textfiler i den aktuella katalogen ska användas.
$ grep -l “gnu” *
Vi kan också leda utdata från andra kommandon till grep.
$ cat gpl-3.0.txt | grep -n “GNU”
Vanligt uttryck
Regex erbjuder ett smart sätt att finjustera sökningen. Det har sina egna regler. Men olika applikationer och programmeringsspråk implementerar regelbundet uttryck på olika sätt. Här är några exempel som du kan använda med grep.
För att definiera att strängen ska hittas vid start av en rad, använd symbolen caret (^).
$ grep -n “^ GNU” gpl-3.0.Text
För att definiera att strängen finns i slutet av en rad, använd dollartecknet ($).
$ grep -n "till $" 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 periodkaraktären (.). Till exempel uttrycket “G.U "är giltigt om det finns något tecken mellan" G "och" U ".
$ grep -n “G.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 ([]). Exempelvis säger uttrycket "t [wo] o" att matchningen endast gäller för "två" och "för".
$ grep -n “t [wo] 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.
$ grep -nE För att söka efter två olika strängar, använd OR-operatorerna (|).
$ grep -nE “GNU | Allmänt | Licens” gpl-3.0.Text
Hitta text i filer
Nu kommer huvuddelen. Istället för att manuellt berätta grep för filen att söka 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 i mönstret.
$ grep * Om du vill grep för att utföra sökningen i en annan katalog måste du ange platsen.
$ grep
Om det finns mappar utforskar inte grep dem som standard. För att be grep att söka rekursivt, använd flaggan “-R”.
$ grep -nR
Grep GUI
Om du föredrar att arbeta med GUI men ändå vill njuta av greps funktioner, kolla in searchmonkey. Det är en front-end-lösning för grep. Paketet finns tillgängligt på nästan alla större Linux-distros.
Hitta text i filer med nano
GNU Nano är en enkel och kraftfull textredigerare som levereras med alla Linux-distroer. Den har inbyggda funktioner för att söka efter text i en textfil.
Observera att i den här metoden måste du öppna textfilen och söka manuellt. Det är möjligt om det bara finns en handfull textfiler att arbeta med. Om det finns mer är användningen av grep det mest optimala valet.
Öppna textfilen i nano.
$ nano
Om du vill söka efter en strängmatchning trycker du på “Ctrl + W”. När du har skrivit in strängen du vill söka efter trycker du på “Enter”.
Hitta text i filer med Vim
Vim är en välkänd och ansedd textredigerare. Det är kommandoradsekvivalenten för en modern textredigerare. Vim levereras med många avancerade funktioner som plugins, makron, automatisk komplettering, filter etc.
På samma sätt som 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.
$ vim
Ange följande Vim-kommando och tryck "Enter".
$: /
Hitta text i filer med GNOME Text Editor
GNOME Text Editor är den textredigerare som medföljer 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 kommandoradsredigerare.
På samma sätt som nano och vim gäller samma försiktighet för denna metod. Om antalet textfiler är stort, borde du hålla fast vid grep.
Öppna textfilen i Textredigeraren. Tryck på “Ctrl + F” för att visa 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 att programmerare ska användas som om det är en fullfjädrad IDE. Den är tillgänglig på nästan alla större Linux-distros.
Installera snap Studio-paketet för Visual Studio.
$ sudo snap installationskod --classic
Ö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 text i filer. Det är en lätt uppgift att bemästra. Det rekommenderas starkt att behärska kommandot grep eftersom det ger 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. Varje modern textredigerare kommer att tillhandahålla alternativet för textsökning.
Happy computing!