En aquest article, explicarem l’ús de la utilitat grep amb diferents exemples. Utilitzarem Debian 10 per explicar les ordres i mètodes esmentats en aquest article.
Instal·lació de Grep
Grep ve instal·lat a la majoria de distribucions de Linux. No obstant això, per si falta al vostre sistema, podeu instal·lar-lo mitjançant el següent mètode a Terminal:
$suo apt-get install adherència
Utilitzant Grep
Aquí teniu la sintaxi bàsica de l'ordre grep. Comença amb grep seguit d’algunes opcions i criteris de cerca i després acaba amb el nom del fitxer.
$adherència [opcions]PATRÓ[DOSSIER...]
Cerqueu fitxers
Per cercar un nom de fitxer en un directori que conté una cadena específica, podeu utilitzar grep de la següent manera:
$ls -la | adherència -icorda
Per exemple, per cercar un nom de fitxer que contingui una cadena prova , l'ordre seria:
$ls-la| adherència–IprovaAquesta ordre llista tots els fitxers que contenen la cadena prova .
Cerqueu una cadena en un fitxer
Per cercar una cadena en un fitxer concret, podeu utilitzar la sintaxi d’ordres següent:
$adherèncianom del fitxer de la cadenaPer exemple, per cercar una cadena prova en un fitxer anomenat fitxer de prova1 , hem utilitzat l'ordre següent :
$adherènciafitxer de prova dels empleats1La sortida anterior ha retornat la frase del fitxer fitxer de prova1 que conté la cadena empleat .
Cerqueu una cadena en diversos fitxers
Per cercar una cadena en diversos fitxers, podeu utilitzar la sintaxi d’ordres següent:
$adherènciastring filename1 file2 namePer exemple, per buscar un empleat de cadena als nostres dos fitxers testfile1 i testfile2, hem utilitzat l'ordre següent:
$adherènciafitxer de prova dels empleats1 fitxer de prova2L'ordre anterior mostrarà totes les línies que contenen la cadena empleada dels fitxers testfile1 i testfile2.
També podeu utilitzar un caràcter comodí si tots els noms de fitxer comencen amb el mateix text.
$adherèncianom del fitxer de la cadena*Igual, si prenem l’exemple anterior en què es trobaven els nostres noms de fitxer fitxer de prova1 i fitxer de prova2 , l'ordre seria:
$adherènciafitxer de prova dels empleats*Cerqueu una cadena en un fitxer ignorant el cas de la cadena
Molt sovint, heu trobat això quan cerqueu alguna cosa amb grep però no rebeu cap sortida. Això passa a causa d'un desajustament entre majúscules i minúscules en cercar una cadena. Com en el nostre exemple, si utilitzem erròniament Empleat en lloc de empleat , tornarà nul com el nostre fitxer conté la cadena empleat en minúscules.
Podeu dir a grep que ignori el cas de la cadena de cerca utilitzant el senyalador –i després del grep de la següent manera:
$adherència–Nom de fitxer de cadenaEn utilitzar el senyalador –i, l’ordre realitzarà la cerca que no distingeix entre majúscules i minúscules i retornarà totes les línies que contenen la cadena empleat en ell sense tenir en compte les lletres estan en majúscula o minúscula.
Cerqueu amb l'expressió regular
Si s’utilitza correctament, l’expressió regular és una característica molt eficaç a grep. Amb l'ordre Grep, podeu definir una expressió regular amb una paraula clau inicial i final. En fer-ho, no haureu d’escriure tota la línia amb l’ordre grep. La següent sintaxi es pot utilitzar per a aquest propòsit.
$adherènciaparaula clau inicial.*nom final del fitxer de paraules clauPer exemple, per cercar una línia en un fitxer anomenat testfile1 que comenci amb la cadena aquesta i acabi amb les dades de la cadena, hem utilitzat l'ordre següent:
$adherènciaaixò.*fitxer de prova de dades1Imprimirà tota la línia des del fitxer fitxer de prova1 que conté l'expressió (paraula clau inicial i dades de paraula clau final).
Imprimiu un nombre particular de línies després / abans de la cadena de cerca
També podeu mostrar el nombre específic de línies d’un fitxer abans / després d’una coincidència de cadena juntament amb la cadena coincident. Amb aquesta finalitat es pot utilitzar la sintaxi següent:
$adherència -A <N>nom del fitxer de la cadenaEs mostrarà N nombre de línies després que la cadena coincideixi al fitxer especificat, inclosa la cadena coincident.
Per exemple, aquest és el nostre fitxer de mostra anomenat fitxer de prova2 .
L'ordre següent mostrarà la línia coincident que conté la cadena empleat , juntament amb les 2 línies posteriors.
$adherència-A2–I fitxer de prova dels empleats2De la mateixa manera, per mostrar N nombre de línies abans de la cadena coincident en un fitxer específic, utilitzeu la sintaxi següent:
$adherència -B <N>nom del fitxer de la cadenaPer mostrar N nombre de línies al voltant de la cadena en un fitxer específic, utilitzeu la sintaxi següent:
$adherència -C <N>nom del fitxer de la cadenaRessaltant la cerca
Grep per defecte imprimeix línies coincidents però no mostra quina part de la línia coincideix. Si utilitzeu l'opció –color amb grep, mostrarà on apareixen les cadenes de mecanitzat al fitxer. Grep utilitza per defecte el color vermell per ressaltar.
Amb aquesta finalitat es pot utilitzar la sintaxi següent:
$adherèncianom del fitxer de la cadena--colorComptant el nombre de coincidències
Si voleu comptar quantes vegades apareix una paraula concreta en un fitxer específic, podeu utilitzar l'opció grep amb –c. Retorna només el nombre de partits en lloc dels partits en si. Amb aquesta finalitat es pot utilitzar la sintaxi següent:
$adherència–C nom del fitxer de la cadenaAquest és el nostre fitxer de mostra:
A continuació es mostra un exemple d'una ordre que ha retornat el nombre de vegades que s'ha obtingut la paraula dossier va aparèixer en un fitxer anomenat fitxer de prova3 .
Cerca invertida
De vegades, voleu fer una cerca inversa que mostri totes les línies excepte les que coincideixin amb l'entrada. Per fer-ho, només cal que utilitzeu el senyalador –v seguit de grep:
$adherència–V nom del fitxer de la cadenaPer exemple, per mostrar totes les línies d'un fitxer fitxer de prova3 que no contenen la paraula compte, hem utilitzat l'ordre següent:
$adherència–V fitxer de prova del compte3Utilitzant Grep amb altres ordres
Grep també es pot utilitzar per filtrar el resultat requerit de diferents ordres de sortida. Per exemple, des del fitxer apt-llista instal·lada sortida de l'ordre, només voleu trobar els paquets que s'han instal·lat automàticament; podeu filtrar el resultat mitjançant grep de la següent manera:
$apte--instal·latllista| adherènciaautomàtic
De la mateixa manera, lscpu proporciona informació detallada sobre la CPU. Si només us interessa la informació sobre l'arquitectura de la CPU, podeu filtrar-la mitjançant l'ordre següent:
$lscpu| adherènciaArquitecturaEn aquest article, hem descrit alguns exemples que us ajudaran a entendre les ordres grep i el seu ús en diferents condicions. Tenir un fort control de l’ordre grep us pot estalviar molt de temps si necessiteu una configuració gran o fitxers de registre i analitzar informació útil a través d’ells.