Ordre Grep a Linux

Grep Command Linux



L’ordre Grep (impressió d’expressió regular global) és la utilitat de línia de comandes Linux més potent i que s’utilitza regularment. Mitjançant Grep, podeu cercar informació útil especificant un criteri de cerca. Cerca un patró d’expressió concret en un fitxer especificat. Quan troba una coincidència, imprimeix totes les línies d'un fitxer que coincideix amb el patró especificat. És útil quan heu de filtrar fitxers de registre grans.

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–Iprova

Aquesta 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 cadena

Per exemple, per cercar una cadena prova en un fitxer anomenat fitxer de prova1 , hem utilitzat l'ordre següent :

$adherènciafitxer de prova dels empleats1

La 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 name

Per 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 prova2

L'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 cadena

En 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 clau

Per 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 dades1

Imprimirà 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 cadena

Es 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 empleats2

De 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 cadena

Per 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 cadena

Ressaltant 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--color

Comptant 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 cadena

Aquest é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 cadena

Per 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 compte3

Utilitzant 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ènciaArquitectura

En 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.