logo

Sådan finder du alle filer, der indeholder specifik tekst (streng) på Linux

Antag, at du leder efter en fil i Linux, men du har glemt dens navn. Du husker kun indholdet af filen. Hvordan finder du filen i denne sag? Nå, der er nogle nyttige metoder, der vil hjælpe dig med at finde en fil, der indeholder en bestemt tekst (eller streng) i Linux. Strengen skal angives af brugeren. Så lad os tage et kig på metoderne:

Metoder til at finde alle filer, der indeholder specifik tekst (streng) på Linux

Metode 1: grep kommando

grep kommando i Linux, der bruges til at søge efter filer, der indeholder en bestemt tekst eller streng. Som standard viser den os linjerne i filerne, der indeholder den bestemte tekst. Hvis vi tilføjer -l muligheden til det, vil kommandoen vise os alle de filer, der indeholder den bestemte tekst.



Eksempel:

Antag, at vi har en mappe, der indeholder to filer ved navn file1.txt og file2.txt.

Indhold af fil1.txt:



This line contains text.>

Indhold af fil2.txt:

You should learn Data Structures & Algorithms.>

Nu vil vi bruge grep-kommandoen med -l-indstillingen til at søge efter tekst i givne filer placeret i den aktuelle mappe. Se følgende eksempel:



Det kan tydeligt siges fra ovenstående eksempel, at grep-kommandoen har fundet den givne streng i file1.txt. Som et resultat viste den filnavnet på skærmen.

Vi kan også bruge -i-indstillingen til at bede grep om at ignorere sagen. Se på følgende eksempel:

tilføje streng i java

Ovenfor har vi først brugt den forrige kommando, men den givne streng er Tekst. Fordi fil1.txt indeholder tekst, ikke tekst, tages den ikke i betragtning. Her udføres søgeoperationen under hensyntagen til sagen. Derefter brugte vi -i-indstillingen. Som et resultat ignoreres sagen, og den givne streng matcher den, som file1.txt indeholder. Derfor vises filnavnet på skærmen.

En anden variation er at bruge -r muligheden. Det foreslår grep at søge efter den givne streng i den aktuelle mappe og dens undermapper rekursivt. Se på nedenstående eksempel:

fil1.txt og fil2.txt er placeret i mappen filer, ikke i den aktuelle mappe, dvs. skrivebordet. Så hvis vi ikke bruger muligheden -r, vil ingen filer med matchende strenge blive fundet, fordi de ikke findes i den aktuelle mappe. Men vi brugte muligheden -r og udelod også filnavnene. Som et resultat søger grep efter matchende strenge i ikke kun den aktuelle mappe, men også i dens undermapper. Derfor bliver file1.txt fundet og vist på skærmen.

Metode 2: Kombinationen af ​​find og grep kommando

Find er en anden nyttig kommando i Linux. Vi vil kombinere find med -type f-indstillingen for at søge efter filer og -exec-indstillingen for at anvende til grep på de filer, der er fundet. Se på følgende eksempel:

Det er klart, at søgeoperationen finder file1.txt, da den indeholder den matchende streng. Derfor vises filnavnet på skærmen.

Metode 3: Find filer, der indeholder specifik tekst med mc

Vi kan også søge efter filer ved hjælp af Midnight Commander (mc). Åbn programmet og tryk på Alt + Shift + ? for at åbne dialogboksen Find fil. Du vil se en startboks øverst. I boksen skal du skrive stien, hvor filerne findes. Indtast derefter den streng, du vil søge i, under indholdsfeltet. I vores tilfælde søgte vi efter tekst i mappen Filer:

Det kan tydeligt ses nedenfor, at søgeoperationen har fundet fil1.txt, som indeholder den matchende streng.

Metode 4: ripgrep kommando

ripgrep (skrevet som rg) er en kommando, der kan bruges som et alternativ til grep-kommandoen. Implementeringen er nedenfor:

modifikationstaster

file1.txt er fundet, og derfor vises filnavnet på skærmen.

Metode 5: ack kommando

Endnu en kommando, vi kan bruge, er ack-kommandoen. Her er implementeringen:

file1.txt er fundet og vist på skærmen.