Windows Tips & News

Find filer, der indeholder specifik tekst i Linux

click fraud protection

Linux, uanset hvilken distro du bruger, kommer med en række GUI-værktøjer, som tillader søgning efter filer. Mange moderne filhåndteringer understøtter filsøgning direkte i fillisten. Der er dog en række situationer, hvor du skal bruge konsollen, for eksempel under en SSH-session, eller når X-serveren ikke starter. Her er, hvordan du hurtigt kan finde filer, der indeholder specifik tekst ved hjælp af terminalen.

Hvis du kan bruge GUI, er det ikke et problem at søge efter filer. I mit foretrukne XFCE-skrivebordsmiljø tillader Thunar filhåndtering at søge efter filer ved at skrive filnavnet direkte i fillisten.

Men ingen af ​​de filhåndteringer, jeg har prøvet, tillader søgning efter filindhold.

For at omgå denne begrænsning, når du arbejder i en GUI-session, kan du bruge Сatfish. Сatfish er et populært søgeværktøj. Det gør det muligt at søge efter filindhold. Du skal klikke på tandhjulsikonet og aktivere indstillingen Søg i filindhold.

Men når det kommer til terminalen, kan du ikke bruge noget grafisk værktøj. Desuden finder jeg Catfish ikke nyttig og foretrækker klassiske konsolværktøjer frem for det. Her er de metoder og værktøjer, jeg bruger.

For at finde filer, der indeholder specifik tekst i Linux, gør følgende.

  1. Åbn din foretrukne terminalapp. XFCE4 terminal er min personlige præference.
  2. Skriv følgende kommando:
    find ./ -type f -exec grep -l "tekst at finde" {} \;
  3. Dette vil producere listen over filer, som indeholder den nødvendige tekstdel.

Find-kommandoen vil søge efter filer, der starter fra den aktuelle mappe, "./". Du kan i stedet angive den ønskede sti.

Muligheden -type f fortæller den kun at søge efter filer og udelukke mapper. Du kan også få den til kun at søge efter en bestemt filtype ved at tilføje indstillingen som følger:
find ./ -type f -iname "*.txt" -exec grep -l "tekst at finde" {} \;

Se følgende skærmbillede:

Det -exec option kalder grep-værktøjet for hver af de matchende filer for at kontrollere deres indhold. Hvis teksten findes i filen, vil dens navn blive tilføjet til outputtet, takket være -l mulighed.

Alternativer

Der er alternativer til metoderne beskrevet ovenfor. Først og fremmest kan du kun bruge grep værktøj. Prøv følgende kommando:

grep -iRl "tekst at finde" ./

  • -i står for ignore text case.
  • -R står for rekursiv filbehandling.
  • -l står for "vis filnavnet, ikke selve resultatet".

Som du kan se, er denne metode mindre fleksibel end Find kommando.

Midnatskommandant

En anden metode, jeg ofte bruger, er Midnight Commander (mc), konsollens filhåndteringsapp. I modsætning til find eller grep er mc ikke inkluderet som standard i alle Linux-distros, jeg har prøvet. Du skal muligvis selv installere det.

For at finde filer, der indeholder en bestemt tekst ved hjælp af Midnight Commander, skal du starte appen og trykke på følgende sekvens på tastaturet:
Alt + Flytte + ?
Dette åbner søgedialogen.

Udfyld sektionen "Filnavn:". Du kan angive noget som "*.txt" for kun at søge efter din tekst i tekstfiler.

Udfyld nu Indhold: boks. Indtast teksten, som filerne indeholder, og tryk på Enter-tasten.

Den vil finde alle filer, der matcher kriterierne.

Det er det.

Yderligere to skjulte funktioner i Windows 10 build 18912

Yderligere to skjulte funktioner i Windows 10 build 18912

ANBEFALEDE: Klik her for at løse Windows-problemer og optimere systemets ydeevneUdover den skjult...

Læs mere

Sådan aktiveres rumlig lyd i Windows 11

Sådan aktiveres rumlig lyd i Windows 11

ANBEFALEDE: Klik her for at løse Windows-problemer og optimere systemets ydeevneDu kan aktivere S...

Læs mere

Deaktiver meddelelsen 'Dette program er muligvis ikke installeret korrekt'

Deaktiver meddelelsen 'Dette program er muligvis ikke installeret korrekt'

Hvis du har brugt Windows 8, Windows 7 eller Vista, kan du for nogle af de apps, du installerer, ...

Læs mere