Vil du finne en fil med innhold i en bestemt tekst?

Dukke med forstørrelsesglass

Noen har spurt meg om en funksjonalitet som de nyeste versjonene av Microsoft Windows har, der du kan bruke søkemotoren til å finne, ikke bare filer med et bestemt navn, men du kan også inkludere en tekst å finne filer som inkluderer slik tekst, for eksempel PDF-filer, Microsoft Office-dokumenter, .txt-tekstfiler osv. Vel, du bør vite at du i GNU / Linux-distribusjonen kan gjøre det og mye mer.

Vi har allerede gjort små opplæringsprogrammer i LxA av kommandoer som find, whereis, locate, etc. Nå skal vi fortelle deg en måte å gjenskape denne funksjonaliteten som jeg har snakket om i første avsnitt fra konsollen din. Som jeg sier Linux er ekstremt fleksibelt og har ulike verktøy for å finne ting, vel, her skal vi vise deg noen av de forskjellige måtene du kan bruke til å søke etter filer der en bestemt tekst eller streng finnes: søk etter et ord eller en streng i filene til en katalog du kan bruke:

grep -s hola /home/*

grep -R hola /home/*

grep -Rw hola /home/*

I det forrige eksemplet ville vi se etter ordet "hallo" i / home-katalogen i alle filene som eksisterer. I det første tilfellet, med alternativet -s, utføres et ikke-rekursivt søk, mens det med -R blir rekursivt, så hvis det er underkataloger inni, vil det også søke der ... Men pass på, det vil søke i alt innholdet med denne strengen «hallo". Derfor, hvis det er et uttrykk eller ord som "hei", vil det også betrakte det som gyldig og vise filene som inneholder dette, det vil si at det ikke søker etter det ordet på en bestemt måte. For å gjøre det spesifikt kan du bruke det tredje alternativet.

Husk at det vil gjøre store og små bokstaver, så de forrige eksemplene vil ignorere ting som Hello, HELLO, holA, etc. Å lage en søke og ignorere sak, så kan du bruke alternativet -i.

Tenk deg at du vil gjøre et søk i omvendt retning, det vil si alle filene der ikke ta med en streng eller et ord spesifikk. Kan du? Sannheten er at ja, for eksempel:

grep -Rlv hola /home/*

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

I det første eksemplet vil den vise hele listen over filer som ikke inneholder ordet "hei", mens det i det andre tilfellet ville gjøre det samme, men filer som blir funnet er ekskludert vert i / home / Desktop ... Forresten, dette alternativet –exclude-dir = kan også brukes i de første eksemplene ...


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   James Vigo sa

    Grazas per isto.