Grep

El comando grep tiene opciones, un patrón que cumplir y archivos en los que buscar

grep [opciones] patrón [archivos]

opciones

-c Muestra el recuento de las líneas que corresponden
-E Muestra las expresiones extendidas
-h Elimina el prefijo normal de cada línea de salida junto con el nombre del archivo en el que se encontró
-i Lo ignora
-v Invierte el patrón para seleccionar las líneas que no se corresponden

expresiones regulares

^ Colocarse al inicio de una línea
$ Colocarse al final de una línea
. Cualquier caracter único
[ ] Los corchetes contienen varios caracteres, cada uno de los cuales puede corresponder, se trata de A-Z 0-7 o una selección invertida colocando el caracter ^ al principio

Para usar estos caracteres como caracteres literales hay que incluir \ delante

patrones de correspondencia

[:alnum:] Caracteres alfanuméricos
[:alpha:] Letras
[:ascii:] Caracteres ASCII
[:blank:] Espacios o tabuladores
[:cntrl:] Caracteres de control ASCII
[:digit:] Dígitos
[:graph:] Caracteres sin espacios y que no son de control
[:lower:] Letras minúsculas
[:print:] Caracteres imprimibles
[:punct:] Caracteres de puntuación
[:space:] Caracteres en blanco, incluídos tabuladores verticales
[:upper:] Letras mayúsculas
[:xdigit:] Dígitos hexadecimales

Si especificamos la opción -E para la correspondencia extendida, la expresión puede ir seguida de otros caracteres que controlan la finalización de la correspondencia. También hace falta "escaparlos" con \

caracteres

? La correspondencia es opcional pero debe cumplirse al menos una vez
* Debe corresponderse cero o más veces
+ Debe corresponderse una o más veces
{n} Debe corresponderse n veces
{n,} Debe corresponderse n o más veces
{n,m} Debe corresponderse entre n y m veces incluídas ambas

ejemplos

Busca líneas que acaben con la letra e

grep e$ file.txt
Busca líneas que contengan palabras que acaban con la letra a
grep a[[:blank:]] file.txt
Busca líneas que contengan palabras de tres letras que empiezan por Th
grep Th.[[:space:]] file.txt
Busca palabras en minúscula que tengan exactamente diez caracteres
grep -E [a-z]\{10\} file.txt

No hay comentarios:

Publicar un comentario