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

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:

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:

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.