En Linux tenim eines molt potents que podem llançar des del Terminal i si volem trobar qualsevol text que estiga en el nostre equip usarem el comandament grep.
grep és un comandament que ens servirà per a trobar text dins de l'arxiu que li indiquem. El seu nom prové de g/re/p, un comandament que serveix per a alguna cosa semblança en un editor de textos d'Unix/Linux. Com molts altres comandaments, grep té moltes opcions disponibles que afegirem en forma de lletres i cadascuna servirà per a una tasca diferent. En combinar aquestes opcions serem capaces de realitzar cerques complexes en un o diversos arxius. A continuació t'ensenyem tot el que necessites saber.
En aquesta imatge he buscat la paraula «Imatges» en l'arxiu «830.desktop» que està en aqueixa ruta. Com veieu, he escrit:
grep Imatges /home/pablinux/Documents/830.desktop
Cal tindre en compte que en aquest article escriurem exemples que cal modificar segons les nostres preferències de cerca. En dir «Arxiu», «Paraula», etc, ens estarem referint a l'arxiu amb la seua ruta. Si jo haguera escrit només «grep Imatges 830.desktop» hauria rebut un missatge dient que l'arxiu no existeix. O així seria llevat que l'arxiu estiguera en el directori arrel.
Altres exemples serien:
Si el que volem és trobar l'arxiu 830.desktop, escriurem el següent comandament:
grep 830.desktop
Això realitzarà una cerca de l'arxiu «830.desktop» en la nostra carpeta personal, és a dir, si l'arxiu es troba en la carpeta personal d'un altre usuari no la trobarà. Això és el més normal del món perquè un usuari no té permís per a accedir al contingut d'un altre sense la seua clau.
grep també ens permet realitzar cerques subjectes a regles o pautes recurrents. Per exemple, llegir tots els arxius de cada directori que continguen la paraula «Pablinux». Per a això escriurem:
grep -r Pablinux /home/
O bé:
grep -R Pablinux /home/
Veurem els resultats de «Pablinux» en una línia separada precedida del nom de l'arxiu en el qual va ser trobat. Si no volem veure els noms de l'arxiu en l'eixida de dades usarem l'opció -h (de «hide»; amagar):
grep -h -R Pablinux /home/
Podem unir les opcions i escriure «-hR» sense les cometes.
A vegades hi ha arxius que contenen el que volem buscar alguna cosa més. Per exemple, això ens pot passar en paraules compostes i buscant «boscos» podem trobar «guardaboscos». Si volem trobar una paraula exacta usarem l'opció -w:
grep -w boscos /home/pablinux/Documents/vacances.txt
L'anterior comandament buscaria «boscos», ignorant guardaboscos, en l'arxiu «vacances.txt» en la ruta indicada. Si el que volem és buscar dues paraules diferents usarem el comandament egrep:
egrep -w boscos|plantes /ruta/del/arxiu
grep també és capaç de comptar quantes vegades apareix una paraula en un arxiu. Per a això usarem l'opció -c:
grep -c prova /ruta/al/arxiu
Afegint l'opció -n el que veurem és el número de la línia en la qual apareix la paraula.
També podem fer el contrari, és a dir, buscar les línies que no continguen una paraula. Per a això usarem l'opció -v, la qual cosa quedaria de la següent manera:
grep -v la ruta/al/arxiu
El comandament anterior mostraria totes les línies que no contingueren la paraula «la». Això pot vindre bé en documents o llistes en les quals una paraula es repetisca moltes vegades i, per alguna raó, necessitem accedir a la resta de línies.
Accedint a la informació del sistema amb grep
grep no sols és capaç de buscar dins d'arxius. També és capaç de mirar informació del sistema. Per a això podem usar el comandament:
cat /proc/cpuinfo | grep -i 'Model'
O bé:
grep -i 'Model' /proc/cpuinfo
Si el que volem és veure els noms de les unitats del disc escriurem:
dmesg | egrep '(s|h)d[a-z]'
Si volem veure una llista amb només els noms dels arxius que coincideixen amb una cerca usarem l'opció -l com es mostra a continuació:
grep -l 'main' *.c
I si volem veure la paraula en colors escriurem:
grep --color paraula /ruta/al/arxiu
Com podeu veure, el comandament grep és una eina molt potent que val la pena sobretot en casos en els quals no recordem on hem escrit alguna cosa o en programació. A més, ens serveix per a esbrinar informació del sistema d'una manera que li agradarà als amants del Terminal.
Obra derivada de https://ubunlog.com/comando-grep/?utm_source=destacado-inside#Como_realizar_busquedas_recursivas