Vil du finde en fil, hvis indhold er en bestemt tekst?

Dukke med forstørrelsesglas

Nogle har spurgt mig om en funktionalitet, som de seneste versioner af Microsoft Windows har, hvor du kan bruge dens søgemaskine til at finde, ikke kun filer med et bestemt navn, men du kan også inkludere en tekst at finde filer, der indeholder nævnte tekst, såsom PDF'er, Microsoft Office-dokumenter, .txt-tekstfiler osv. Nå, du skal vide, at i din GNU/Linux-distribution kan du gøre det og meget mere.

Vi har allerede lavet små tutorials i LxA af kommandoer som find, whereis, locate osv. Nu vil vi fortælle dig en måde at genskabe denne funktionalitet, som jeg har talt om i det første afsnit fra din konsol. Som jeg siger, er Linux ekstremt fleksibelt og har forskellige værktøjer til at finde ting, her vil vi vise dig nogle af de forskellige måder, du kan bruge til at søge efter filer, hvori en bestemt tekst eller streng findes: søg efter et ord eller en streng på filer i en mappe kan du bruge:

grep -s hola /home/*

grep -R hola /home/*

grep -Rw hola /home/*

I det foregående eksempel ville ordet "hej" blive søgt efter i mappen /home i alle de filer, der findes. I det første tilfælde udføres en ikke-rekursiv søgning med -s, mens den med -R bliver rekursiv, så hvis der er undermapper inde, vil den også søge der... Men vær forsigtig, det ville søge i alle indhold med denne streng "hej", derfor hvis der er en sætning eller et ord såsom "hej", vil det også betragte det som gyldigt og vise de filer, der indeholder dette, det vil sige, det søger ikke efter det ord på en bestemt måde. For at gøre det specifikt kan du bruge den tredje mulighed.

Husk, at den vil udføre søgninger, der skelner mellem store og små bogstaver, så ting som Hej, HELLO, hej osv. vil blive ignoreret i eksemplerne ovenfor. for mig at lave en søg og ignorer sager, så kan du bruge -i-indstillingen.

Forestil dig, at du vil lave en omvendt søgning, det vil sige alle de filer, hvor medtag ikke en streng eller et ord bestemt. Kan du? Sandheden er, at ja, for eksempel:

grep -Rlv hola /home/*

grep --exclude-dir= /home/Desktop -Rlv /home/*

I det første eksempel vil det vise hele listen over filer, der ikke indeholder ordet "hej", mens det i det andet tilfælde ville gøre det samme, men filer, der er fundet, er udelukket hostet i /home/Desktop... Forresten, denne mulighed –exclude-dir= du kan også bruge den i de første eksempler...


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for data: AB Internet Networks 2008 SL
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   James Vigo sagde han

    Tak for dette.