GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar el comando grep en Linux/UNIX

Introducción

Esta guía detalla los comandos grep más útiles para sistemas Linux/Unix.

Después de pasar por todos los comandos y ejemplos, aprenderá a usar grep para buscar archivos de texto desde la terminal.

Requisitos previos

  • Sistema similar a Linux o UNIX
  • Acceso a una terminal/línea de comando
  • Un usuario con permisos para acceder a los archivos y directorios deseados

¿Qué es el comando grep?

Grupo es un acrónimo que significa G global R E regular expresión x P imprimir.

Grep es una herramienta de línea de comandos de Linux/Unix que se utiliza para buscar una cadena de caracteres en un archivo específico. El patrón de búsqueda de texto se denomina expresión regular. Cuando encuentra una coincidencia, imprime la línea con el resultado. El comando grep es útil cuando se busca en archivos de registro de gran tamaño.

Uso del comando grep

El comando grep consta de tres partes en su forma más básica. La primera parte comienza con grep , seguido del patrón que está buscando. Después de la cadena viene el nombre del archivo en el que busca grep.

La sintaxis del comando grep más simple se ve así:

El comando puede contener muchas opciones, variaciones de patrones y nombres de archivo. Combina tantas opciones como sea necesario para obtener los resultados que necesitas. A continuación se muestran los comandos grep más comunes con ejemplos .

Para buscar un archivo

Para imprimir cualquier línea de un archivo que contenga un patrón específico de caracteres, en nuestro caso phoenix en el archivo sample2 , ejecute el comando:

grep phoenix sample2

Grep mostrará cada línea donde haya una coincidencia para la palabra phoenix . Al ejecutar este comando, no obtiene coincidencias exactas. En cambio, la terminal imprime las líneas con palabras que contienen la cadena de caracteres que ingresó. Aquí hay un ejemplo:

Para buscar varios archivos

Para buscar varios archivos con el comando grep, inserte los nombres de archivo que desea buscar, separados por un carácter de espacio.

En nuestro caso, el comando grep para hacer coincidir la palabra phoenix en tres archivos sample , sample2 y sample3 se parece a este ejemplo:

grep phoenix sample sample2 sample3

El terminal imprime el nombre de cada archivo que contiene las líneas coincidentes y las líneas reales que incluyen la cadena de caracteres requerida.

Puede agregar tantos nombres de archivo como sea necesario. El terminal imprime una nueva línea con el nombre del archivo por cada coincidencia que encuentra en los archivos enumerados.

Buscar todos los archivos en el directorio

Para buscar todos los archivos en el directorio actual, use un asterisco en lugar de un nombre de archivo al final de un comando grep.

En este ejemplo, usamos nix como criterio de búsqueda:

grep nix *

La salida muestra el nombre del archivo con nix y devuelve la línea completa.

Para buscar solo palabras completas

Grep le permite buscar e imprimir los resultados solo para palabras completas. Para buscar la palabra phoenix en todos los archivos del directorio actual, agregue -w al comando grep.

grep -w phoenix *

Esta opción solo imprime las líneas con coincidencias de palabras completas y los nombres de los archivos en los que las encontró:

Cuando -w se omite, grep muestra el patrón de búsqueda incluso si es una subcadena de otra palabra.

Si desea buscar varias cadenas y patrones de palabras, consulte nuestro artículo sobre cómo hacer grep para varias cadenas, patrones o palabras.

Para ignorar mayúsculas y minúsculas en búsquedas Grep

Como los comandos grep distinguen entre mayúsculas y minúsculas, uno de los operadores más útiles para búsquedas grep es -i. En lugar de imprimir solo los resultados en minúsculas, el terminal muestra los resultados en mayúsculas y minúsculas. La salida incluye líneas con entradas de mayúsculas y minúsculas.

Un ejemplo de este comando:

grep -i phoenix *

Si usamos el operador -i operator para buscar archivos en el directorio actual para phoenix , la salida se ve así:

Para buscar subdirectorios

Para incluir todos los subdirectorios en una búsqueda, agregue -r operador al comando grep.

grep -r phoenix *

Este comando imprime las coincidencias de todos los archivos en el directorio actual, los subdirectorios y la ruta exacta con el nombre del archivo. En el siguiente ejemplo, también agregamos -w operador para mostrar palabras completas, pero la forma de salida es la misma.

Búsqueda inversa de grep

Puede usar grep para imprimir todas las líneas que no coincidir con un patrón específico de caracteres. Para invertir la búsqueda, agregue -v a un comando grep.

Para excluir todas las líneas que contienen phoenix , introduce:

grep -v phoenix sample

El terminal imprime todas las líneas que no contienen la palabra utilizada como criterio de búsqueda. Usa -i operator ignorar mayúsculas y minúsculas para excluir completamente la palabra utilizada para esta búsqueda:

Para mostrar líneas que coinciden exactamente con una cadena de búsqueda

El comando grep imprime líneas completas cuando encuentra una coincidencia en un archivo. Para imprimir solo aquellas líneas que coincidan completamente con la cadena de búsqueda, agregue -x opción.

grep -x “phoenix number3” *

La salida muestra solo las líneas con la coincidencia exacta. Si hay otras palabras o caracteres en la misma línea, el grep no lo incluye en los resultados de búsqueda. No olvide usar comillas siempre que haya un espacio o un símbolo en un patrón de búsqueda.

Aquí hay una comparación de los resultados sin y con -x operador en nuestro comando grep:

Para listar nombres de archivos coincidentes

A veces, solo necesita ver los nombres de los archivos que contienen una palabra o cadena de caracteres y excluir las líneas reales. Para imprimir solo los nombres de archivo que coincidan con su búsqueda, use -l operador:

grep -l phoenix *

El resultado muestra los nombres de archivo exactos que contienen phoenix en el directorio actual pero no imprime las líneas con la palabra correspondiente:

Como recordatorio, use el operador de búsqueda recursivo -r para incluir todos los subdirectorios en su búsqueda.

Para contar el número de coincidencias

Grep puede mostrar los nombres de archivo y el número de líneas donde encuentra una coincidencia para su palabra.

Usa la -c operador para contar el número de coincidencias:

grep -c phoenix *

Para mostrar el número de líneas antes o después de una cadena de búsqueda

A veces, necesita más contenido en los resultados de búsqueda para decidir qué es más relevante.

Utilice los siguientes operadores para agregar las líneas deseadas antes, después de una coincidencia o ambas:

  • Use -A y un número de líneas para mostrar después de un partido:grep -A 3 phoenix sample - este comando imprime tres líneas después del partido.
  • Use -B y un número de líneas para mostrar antes de una coincidencia:grep -B 2 phoenix sample - este comando imprime dos líneas antes del partido.
  • Use -C y un número de líneas para mostrar antes de y después del partido:grep -C 2 phoenix sample - este comando imprime dos líneas antes y después del partido.

Para mostrar números de línea con coincidencias grep

Cuando grep imprime resultados con muchas coincidencias, es útil ver los números de línea. Agregue el -n operador a cualquier comando grep para mostrar los números de línea.

Buscaremos a Phoenix en el directorio actual, muestra dos líneas antes y después de las coincidencias junto con sus números de línea.

grep -n -C 2 Phoenix sample

Limitar la salida de grep a un número fijo de líneas

Los archivos individuales, como los archivos de registro, pueden contener muchas coincidencias para los patrones de búsqueda de grep. Limite el número de líneas en la salida grep agregando -m opción y un número al comando.

grep -m2 Phoenix sample

En este caso, el terminal imprime las dos primeras coincidencias que encuentra en el sample archivo.

Si no especifica un archivo y busca todos los archivos en un directorio, la salida imprime los primeros dos resultados de cada junto con el nombre del archivo que contiene las coincidencias.


Linux
  1. Cómo usar el comando grep de Linux

  2. Cómo usar el comando de historial en Linux

  3. Cómo usar el comando de historial de Linux

  4. Cómo usar el comando Su en Linux

  5. Cómo usar el comando de pantalla de Linux

Cómo usar el comando sysctl en Linux

Cómo usar el comando de apagado de Linux

Cómo usar grep en Linux

Comando Grep en Linux/UNIX

Buscar comando en Linux/UNIX

Uso del comando grep en Linux