logo

Hur man hittar alla filer som innehåller specifik text (sträng) på Linux

Anta att du letar efter en fil i Linux, men du har glömt dess namn. Du kommer bara ihåg innehållet i filen. Hur hittar du filen i det här fallet? Tja, det finns några användbara metoder som hjälper dig att hitta en fil som innehåller en specifik text (eller sträng) i Linux. Strängen måste specificeras av användaren. Så låt oss ta en titt på metoderna:

string.valueof java

Metoder för att hitta alla filer som innehåller specifik text (sträng) på Linux

Metod 1: grep kommando

grep kommando i Linux som används för att söka efter filer som innehåller en specifik text eller sträng. Som standard visar den oss raderna i filerna som innehåller den specifika texten. Om vi ​​lägger till alternativet -l till det, kommer kommandot att visa oss alla filer som innehåller den specifika texten.



Exempel:

Anta att vi har en katalog som innehåller två filer som heter file1.txt och file2.txt.

Innehållet i fil1.txt:



This line contains text.>

Innehållet i fil2.txt:

You should learn Data Structures & Algorithms.>

Nu kommer vi att använda kommandot grep med alternativet -l för att söka efter text i givna filer som finns i den aktuella katalogen. Se följande exempel:



Det kan tydligt sägas från exemplet ovan att grep-kommandot framgångsrikt har hittat den givna strängen i file1.txt. Som ett resultat visade den filnamnet på skärmen.

Vi kan också använda alternativet -i för att säga åt grep att ignorera fallet. Titta på följande exempel:

Ovan har vi först använt det föregående kommandot, men den givna strängen är Text. Eftersom fil1.txt innehåller text, inte text, tas den inte i beaktande. Här utförs sökoperationen med fallet i åtanke. Sedan använde vi alternativet -i. Som ett resultat ignoreras fallet och den givna strängen matchar den som file1.txt innehåller. Därför visas filnamnet på skärmen.

hur man kontrollerar skärmstorleken

En annan variant är att använda alternativet -r. Det föreslår att grep ska söka efter den givna strängen i den aktuella katalogen och dess underkataloger rekursivt. Titta på exemplet nedan:

fil1.txt och fil2.txt finns i mappen filer, inte i den aktuella katalogen, dvs skrivbordet. Så, om vi inte använder alternativet -r, kommer inga filer med matchande strängar att hittas eftersom de inte finns i den aktuella katalogen. Men vi använde alternativet -r och utelämnade även filnamnen. Som ett resultat söker grep efter matchande strängar inte bara i den aktuella katalogen utan också i dess underkataloger. Därför hittas och visas file1.txt på skärmen.

Metod 2: Kombinationen av find och grep-kommandot

hitta är ett annat användbart kommando i Linux. Vi kommer att kombinera find med alternativet -type f för att söka efter filer och alternativet -exec för att tillämpa på grep på filerna som hittas. Titta på följande exempel:

Uppenbarligen hittar sökoperationen file1.txt eftersom den innehåller den matchande strängen. Därför visas filnamnet på skärmen.

Metod 3: Hitta filer som innehåller specifik text med mc

Vi kan också söka efter filer med Midnight Commander (mc). Öppna programmet och tryck Alt + Skift + ? för att öppna dialogrutan Sök fil. Du kommer att se en startruta överst. Skriv sökvägen där filerna finns i rutan. Skriv sedan strängen du vill söka under innehållsrutan. I vårt fall sökte vi efter text i filkatalogen:

Det kan tydligt ses nedan att sökoperationen har hittat fil1.txt, som innehåller den matchande strängen.

bharti jha

Metod 4: kommandot ripgrep

ripgrep (skrivet som rg) är ett kommando som kan användas som ett alternativ till kommandot grep. Implementeringen är nedan:

myra vs maven

file1.txt hittas och därför visas filnamnet på skärmen.

Metod 5: ack-kommando

Ännu ett kommando vi kan använda är kommandot ack. Här är implementeringen:

file1.txt har hittats och visas på skärmen.