Vols trobar un fitxer el contingut sigui un text concret?

Ninot amb Lupa

Alguns m'han preguntat per una funcionalitat que tenen les últimes versions de Microsoft Windows en les que pots utilitzar el seu cercador per trobar, no només fitxers amb un nom determinat, sinó que també pots incloure un text a la recerca arxius que incloguin aquest text, com poden ser PDFs, documents de Microsoft Office, fitxers de text .txt, etc. Doncs bé, has de saber que en la teva distribució GNU / Linux pots fer això i molt més.

Ja hem fet petits tutorials en LxA d'ordres com find, whereis, locate, etc. Ara et direm una forma de recrear aquesta funcionalitat de la qual he parlat en el primer paràgraf des del teu consola. Com dic Linux és extremadament flexible i disposa d' diverses eines per trobar coses, doncs aquí et mostrarem algunes de les diferents formes que pots fer servir per buscar fitxers en què es trobi un determinat text o cadena: Per cercar una paraula o cadena en els fitxers d'un directori pots utilitzar:

grep -s hola /home/*

grep -R hola /home/*

grep -Rw hola /home/*

En l'anterior exemple es buscaria la paraula «hola» dins el directori / home en tots els fitxers que hi hagi. En el primer cas, amb l'opció -s es realitza una cerca no recursiva, mentre que amb la -R es torna recursiva, per tant si hi ha subdirectoris dins també buscarà aquí ... Però compte, això buscaria tot el contingut amb aquesta cadena «hola », per tant si hi ha una frase o paraula tipus« Holala »també la donaria per vàlida i mostraria els fitxers que contenen això, és a dir, no busca aquesta paraula d'una forma específica. Per fer-la específica pots fer servir la tercera opció.

Recorda que farà recerques sensibles a majúscules i minúscules, per tant en els exemples anteriors es ignorarien coses com Hola, hola, hola, etc. Perquè faci una recerca i ignori majúscules i minúscules, Aleshores podeu fer servir l'opció -i.

Imagina que vols fer una recerca al revés, és a dir, tots aquells fitxers on no s'inclogui una cadena o paraula específica. Podries? La veritat és que sí, per exemple:

grep -Rlv hola /home/*

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

En el primer exemple mostrarà tota la llista de fitxers que no contenen la paraula «hola», mentre que en el segon cas faria el mateix però s'exclouen els fitxers que es trobin allotjats a / home / Desktop ... Per cert, aquesta opció -exclude-dir = també la pots utilitzar en els primers exemples ...


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Tiago Vigo va dir

    Grazas per isto.