¿Qué es el comando grep?
Grep es un acrónimo que significa Global Regular Expression Print…
Grep es una herramienta de comando de Linux/Unix para buscar una cadena de caracteres en un archivo especifico. El patrón de buscado de texto es llamado una expresión regular. Cuando encuentra un match, pinta la linea con el resultado. El comando grep es útil cuando se busca en largos archivos log.
Usando el comando grep
El comando grep consiste de tres partes en su forma mas básica. La primera empieza con el comando mismo; grep. seguido de un patrón que nos va a permitir hacer la búsqueda, después viene el string del nombre del archivo que el grep se va a encargar de buscar.
La sintaxis mas sencilla del grep luce de la siguiente manera:
El comando puede contener muchas opciones, variaciones de patrón y nombres de archivos. Todas estas opciones combinadas son útiles para conseguir los resultados que se necesitan. Debajo están los comandos grep mas comunes con ejemplos:
La búsqueda de un archivo
Para pintar cualquier linea desde un archivo que contiene un especifico patrón de caracteres, en nuestro caso vamos a usar phoenix en el archivo sample2, vamos a correr el comando.
grep phoenix sample2
Grep mostrara cada linea donde hay un match para la palabra phoenix. A la hora de ejecutar este comando, tu no consigues los matches exactos. En vez de eso, la terminal pinta las lineas con palabras conteniendo las cadenas de caracteres que hayas ingresado a la hora de la ejecución del comando. Aquí hay un ejemplo
Buscar en múltiples archivos
Para buscar en múltiples archivos con el comando grep, hay que insertar el nombre de los archivos en los que queremos buscar el dicho carácter, solo que hay que separarlos por un espacio en blanco.
En nuestro caso, el comando grep va a encontrar la palabra phoenix in tres archivos; sample, sample2, sample3. Aquí un ejemplo de lo que tu verías en la consola:
grep phoenix sample sample2 sample3
La terminal pintara el nombre de cada archivo que contiene las lineas que hicieron match, y las lineas actuales que incluyen la requerida cadena de caracteres.
Puedes agregar tantos archivos como sean necesarios. La terminal pinta una nueva linea con con el nombre del archivo para cada match que encuentra en los archivos listados.
Buscar en todos los archivos del directorio
Para buscar en todos los archivos del directorio actual, hay que usar un asterisco en vez del nombre del archivo en el comando grep
En este ejemplo, yo use nix como criterio de busqueda
grep nix *
El output muestra el nombre del archivo con nix y regresa la linea entera.
Encuentra solo palabras completas
Grep te permite encontrar y pintar el resultado para palabras completas. La búsqueda para la palabra phoenix en todos los archivos del directorio actual, le sumamos la expresión -w
al comando grep.
grep -w phoenix *
Esta opción solo pinta las lineas donde la palabra completa hace match y los nombres de los archivos en donde se hizo el match.
Cuando se omite el -w, grep muestra el patrón de búsqueda incluso si esta sustraído de otra palabra.
Mas información al siguiente link: https://phoenixnap.com/kb/grep-command-linux-unix-examples#:~:text=Grep is a Linux %2F Unix,searching through large log files.