Guías sobre temas de bases de datos y programación
EL comando grep
(Globally Search Regular Expression and Print out). Es una herramienta de la línea de comando usado en sistemas Linux y Unix para buscar un patrón específico en un archivo o grupo de archivos.
grep
tiene muchas opciones que permiten realizar varias acciones relacionadas con la búsqueda en archivos. En breve veremos como usar el comando grep
con sus opciones disponibles tanto como expresiones regulares básicas y algunas más avanzadas.
La sintaxis es la siguiente:
grep "<texto-buscado>" <achivo/archivos>
Tener en cuenta que las comillas simples o dobles son requeridas alrededor del texto si es más de una palabra
También podemos usar el comodín *
para seleccionar todos los archivos de un directorio.
-n
o --line-number
imprime las coincidencias de un texto junto con los números de línea.
grep todos /path/to/test.txt -n
Resultado:
1: Hola a todos
3: Espero que estén todos bien
-c
o --count
Imprime el número de líneas de coincidencias:
grep com /path/to/test.txt
Resultado:
3
Tener en cuenta la opción
-c
esta relacionado con el número de línea donde aparecen las coincidencia, no la cantidad de coincidencia.
grep
también permite especificar patrones con expresiones regulars básicas. Dos de ellas son:
^pattern
- inicio de línea
Este patrón significa que grep
solo coincide con cadenas cuyas líneas empiecen con la cadena especificada después de ^
.
Veamos algunos ejemplos:
grep ^A /path/to/test_grep.txt -n
Resultado
2: A
pattern$
- fin de línea
En contraste con el patrón anterior $
especifica patrones que coincidirán si la línea termina con la cadena antes de $
.
Veamos algunos ejemplos:
grep o$ /path/to/test_grep.txt
Resultado
otro
cambiar el neumático
buscar palabras que comienzan con com en el archivo ‘test.txt’ (sólo tomará aquellas que la línea actual comiencen con com):
grep ^com /path/to/test.txt
seleccionar todas las líneas del archivo ‘test.txt’ que contienen números:
grep [0-9] /path/to/test.txt
guardar el resultado de una búsqueda en un archivo:
grep ^com test_grep.txt >> resultado.txt