Pide tu presupuesto ya!

Su guía para la resolución eficiente de problemas del sistema

Como administrador del sistema, familiarizarse con diferentes grep con expresiones regulares es crucial para sus tareas diarias. El grep Los comandos le ayudarán a conocer sus sistemas como la palma de su mano y facilitarán la resolución de problemas.

El comando grep es uno de los comandos más útiles para buscar patrones específicos en archivos de texto. Y en este tutorial, aprenderá muchas formas de utilizar grep comandos.

¡Siga leyendo y nunca más se pierda la información sobre su sistema!

Requisitos previos

Este tutorial será una demostración práctica. Si desea seguirnos, asegúrese de tener lo siguiente.

  • Una máquina Linux: esta demostración utiliza Ubuntu 20.04, pero cualquier distribución de Linux funcionará.

Encontrar cadenas exactas especificadas

Es posible encontrar manualmente una cadena en un archivo de configuración, pero puede dañar la vista al intentar diferenciar una cadena de otra que tiene el mismo color de texto. Afortunadamente, el comando grep te permite resaltar las cadenas que estás buscando.

1. Descargue el Licencia pública general GNU como en el ejemplo utilizado en este tutorial a su directorio de trabajo para obtener un archivo de configuración de ejemplo.

2. Ejecute el grep comando a continuación para buscar en el archivo de configuración descargado y resaltar (--color=always) la cuerda GNU. Pasas grep la cadena que desea buscar como argumento, junto con el nombre del archivo (GPL-3).

sudo grep --color=always "GNU" GPL-3

Como puede ver a continuación, el comando grep imprime cada línea del GPL-3 archivo que coincide con la cadena “GNU” resaltada en rojo. Este comportamiento es útil cuando estás solucionando un problema y necesitas ver dónde se usa una palabra específica.

Encontrar la palabra exacta especificada

Quizás desee buscar una cadena ignorando las mayúsculas y minúsculas. Si es así, agregue el indicador -i para buscar una cadena, ya sea en minúsculas o mayúsculas, como esta: sudo grep –color=always -i “GNU” GPL-3.

Encontrar una palabra específica exacta ignorando las mayúsculas y minúsculas
Encontrar una palabra específica exacta ignorando las mayúsculas y minúsculas

Excluir cadenas que no coinciden con un texto específico

Hasta ahora, ha aprendido cómo encontrar líneas que contengan una cadena exacta específica, teniendo o no en cuenta el caso. Pero ¿qué pasa si sólo quieres ver las líneas que no contienen una cadena exacta? Anexando el -v o -invert-match bandera con el grep El comando te permite hacer precisamente eso.

Ejecute el grep comando a continuación para buscar a través de GPL-3 archivo de configuración para la cadena the. Este comando imprime todas las líneas que no contienen (-v) la cuerda the.

desde el -i la bandera no estaba colocada, el grep El comando imprime las líneas de cadenas que contienen una cadena (“the”) en diferentes mayúsculas y minúsculas, como se muestra a continuación. Este comportamiento es útil al excluir ciertas líneas de su búsqueda grep.

Excluir ciertas líneas con palabra exacta
Excluir ciertas líneas con palabra exacta

También puede utilizar el indicador -n o –line-number para imprimir el número de línea de cada coincidencia de búsqueda, así: sudo grep -vn -i “the” GPL-3. El indicador -n resulta útil cuando se trabaja con archivos de código fuente. Puede hacer referencia al número de línea para saltar rápidamente a la línea en su archivo de código fuente que está buscando.

Imprimir las cadenas con números de línea
Imprimir las cadenas con números de línea

Uso de anclajes Regex para hacer coincidir el principio y el final de una cadena

En los ejemplos anteriores, has aprendido a utilizar grep para buscar líneas que contengan una cadena específica. En esos ejemplos, el motor de expresiones regulares coincidió con caracteres o una cadena. Por otro lado, Anchors no coincide con ningún personaje en absoluto. Los anclajes coinciden con una posición antes y después de los personajes.

El símbolo de intercalación (^) coincide con la posición antes del primer carácter de una cadena, mientras que el símbolo del dólar ($) coincide con la posición después del último carácter de una cadena.

Los anclajes son útiles cuando tiene una cadena que consta de varias líneas, donde un salto de línea está roto y desea trabajar con líneas en lugar de con la cadena completa.

Ejecute el grep comando a continuación para buscar la línea de cadenas que comienzan con GNU.

Buscando Ling de cadenas que comienzan con GNU
Buscando Ling de cadenas que comienzan con GNU

Del mismo modo, puede ejecutar el grep comando a continuación para buscar la línea de cadenas que terminan con GNU.

A continuación, el resultado está en blanco ya que ninguna línea coincide con la expresión regular dada.

Buscando líneas de cadenas que terminan en GNU
Buscando líneas de cadenas que terminan en GNU

Buscar cadenas haciendo coincidir cualquier carácter

En lugar de hacer coincidir cadenas, quizás esté buscando cadenas que contengan un solo carácter cuando no recuerda la ortografía exacta. Si es así, puedes utilizar un metacarácter (.) en una expresión regular para que coincida con cualquier carácter.

El uso de puntos es útil cuando desea hacer coincidir varias instancias de un carácter. Por ejemplo, la expresión regular “ct” coincide con las cadenas “cat”, “cot” y “cut”, etc.

Ejecute el grep comando a continuación para ver cómo . El símbolo funciona en la práctica. Este comando busca a través del GPL-3 archivo para líneas que contienen la cadena cept. Los dos puntos adyacentes en la expresión regular indican que cualquier carácter puede existir en la ubicación especificada.

sudo grep  --color=always "..cept" GPL-3

Observe a continuación que el grep El comando produce toneladas de resultados, ya que la cadena cept aparece varias veces en el archivo en cadenas como inaceptable, excepcionesaaceptaciónetcétera.

Hacer coincidir cualquier carácter dentro de un archivo de configuración
Hacer coincidir cualquier carácter dentro de un archivo de configuración

Buscando cadenas por Conjuntos de personajes coincidentes

Al igual que buscar cadenas haciendo coincidir cualquier carácter, puede usar el corchete [] metacarácter en una expresión regular para que coincida con caracteres específicos. Por ejemplo, la expresión regular [abc] coincidiría con los caracteres: “a”, “b” y “c”.

Ejecute el grep comando a continuación busque a través del GPL-3 archivo para cualquier línea que contenga la cadena “también” o “dos”.

sudo grep --color=always "t[wo]o" GPL-3
Encontrar líneas de cadenas que contengan las cadenas "también" o "dos"
Encontrar líneas de cadenas que contengan las cadenas “también” o “dos”

Además, puede utilizar el operador de rango para especificar un rango de elementos en lugar de enumerar cada elemento individual. Entonces la expresión regular [a-c] coincidiría con cualquier letra minúscula de “a” a “c”, mientras que la expresión regular [A-Z] coincidiría con cualquier letra mayúscula de la “A” a la “Z”.

Ejecute lo siguiente grep comando para buscar cada línea de cadenas que comienzan con mayúscula (^[A-Z]) letra en el GPL-3 archivo.

sudo grep --color=always "^[A-Z]" GPL-3
Buscar líneas de cadenas que comiencen con letra mayúscula
Buscar líneas de cadenas que comiencen con letra mayúscula

Búsqueda de cadenas por clases predefinidas

Aparte de los metacaracteres, el grep El comando también admite varias clases de caracteres predefinidas diferentes que puede usar en sus expresiones regulares. Se recomienda utilizar estas clases predefinidas siempre que sea posible, ya que es más probable que sean compatibles con diferentes grep implementaciones.

Las clases más comunes se muestran en la siguiente tabla:

Vista previa de clases de caracteres predefinidas
Vista previa de clases de caracteres predefinidas

Ejecute el grep comando a continuación para buscar cada línea de cadena que comience con una letra mayúscula en el GPL-3 archivo. Este comando es similar a hacer coincidir conjuntos de caracteres, pero en su lugar se utiliza la clase de caracteres predefinida. [:upper:].

sudo grep --color=always "^[[:upper:]]" GPL-3
Búsqueda de líneas de cadenas que comienzan con mayúscula utilizando una clase de caracteres predefinida [:upper:]
Búsqueda de líneas de cadenas que comienzan con mayúscula utilizando una clase de caracteres predefinida [:upper:]

Escapar de metacaracteres

Acaba de buscar cadenas con la ayuda de metacaracteres, que encontrará a menudo al usar grep comandos. Cada metacarácter tiene un significado especial en las expresiones regulares. Por lo tanto, debes escapar de los metacaracteres con barras invertidas (\) decir grep no utilizar su significado especial.

Los metacaracteres más comunes son los puntos (.) y los corchetes ([]).

Suponga que planea buscar una dirección IP (con muchos puntos) y nada más. Sin escapar de los puntos (metacarácter), grep imprimirá cadenas, incluso aquellas que no sean direcciones IP.

Ejecute lo siguiente grep comando para encontrar la dirección IP 192.168.1.18y ver como grep interpreta el significado especial de los puntos.

sudo grep "192.168.1.18" GPL-3

Como se muestra abajo, grep imprimió las líneas de cuerdas del GPL-3 archivo, uno que contiene 192.168.1.18 cadenas e incluso una que no sea una dirección IP (192a168b1c18).

Encontrar una dirección IP sin escapar de los metacaracteres
Encontrar una dirección IP sin escapar de los metacaracteres

Ahora, ejecute el siguiente comando para decirle grep para interpretar puntos (\\.) como literal.

sudo grep --color=always "192\\.168\\.1\\.18" GPL-3

Puedes ver que el grep El comando solo imprime la cadena con el 192.168.1.18 Dirección IP en él, como se muestra a continuación.

Escapar de metacaracteres
Escapar de metacaracteres

Conclusión

En este artículo has aprendido a utilizar grep con expresiones regulares para buscar cadenas en archivos en diferentes patrones. También aprendió cómo escapar de los metacaracteres utilizados en expresiones regulares, lo cual resulta útil para no estropear todo al escribir un guión. Y ahora puedes usar con confianza grep para encontrar patrones de texto en archivos con gran precisión.

Con este poder a tu alcance, ¿por qué no empezar a Profundiza y encuentra la información. necesitas y analizas datos.

Written by

Leave a comment