Comando Grep: Las Opciones Más Usadas
Comando Grep: Las Opciones Más Usadas
-o le indica a grep que nos muestre sólo la parte de la línea que coincide con el
patrón.
-f ARCHIVO extrae los patrones del archivo que especifiquemos. Los patrones
del archivo deben ir uno por línea.
Expresiones regulares
^X devuelve las líneas que empiezan por X
X$ devuelve las líneas que terminan por X
“xxx” devuelve las líneas en las que se encuentran los caracteres xxx
“xxx|yyy”el separador | (barra vertical) permite buscar mas de una
palabra en el mismo comando
“xx x\|y yy”el separador \| (barra vertical) permite buscar mas de una
cadena en el mismo comando
Metacaracteres
* Cero o más del patrón precedente
+ Uno o más del patrón precedente
? Cero o uno del patrón precedente
{n} indica que el elemento que le precede debe estar exactamente "n" veces.
{n,m} indica que el elemento que le precede debe estar entre "n" y "m" veces
Ejercicios
Mediante el comando wget descarga el fichero ubicado en:
http://www.unirioja.es/cu/jearansa/1112/ficheros/historia
Otro comando que también nos permite trabajar con ficheros de texto es sed (stream editor). El mandato sed nos va a permitir
tomar un fichero de texto y modificarlo, de nuevo por medio de expresiones regulares o por alguna de sus opciones más
conocidas.
sed '[patron_a_buscar/][función_a_ejecutar]/texto_a_buscar/texto_a_reemplazar/[rango_de_busqueda]'
< fichero_a_reemplazar > fichero_nuevo
Opciones
-i: permite modificar el mismo fichero en el que estamos trabajando
-e: permite realizar mas de un cambio en el mismo comando
-n: permite imprimir solo el contenido especificado (necesario cuando usemos ‘p’
Texto a remplazar
o \U& (upper case): convierte las letras a mayusculas
o \L& (lower case): convierte letras a minúsculas
Rango de búsqueda
g: permite hacer cambios a todo el contenido que le pasemos al comando sed
G: añade un salto de línea al terminar la línea en la que se encontró el patron de búsqueda
Opciones de búsqueda:
o ‘[numero]q’: permite imprimir las primeras “numero” líneas
o ‘[numero]p’: permite imprimir la línea “numero”
o ‘$p’: permite imprimir la ultima línea del fichero.
o ‘[num1]p’ && ‘[num2]p’ permite imprimir el contenido de la línea “num1” Y el de la línea “num2”
(deberemos escribir 2 veces el comando sed)
(La “s” indica que hacemos una sustitución; entre los dos primeros “/.../”
está la expresión regular que queremos reemplazar, en este caso
“^[[:alpha:]]*\b”; entre el segundo y el tercer “/.../” aparece la expresión
por la cual será reemplazada, en este caso por nada; la “g” final indica que
el cambio debe ser global con respecto a las líneas, es decir, todas las
apariciones de cada línea; si no indicamos nada, sólo se llevará a cabo en la
primera aparición de cada línea.
Es importante recordar la idea de que sed, al igual que grep, por defecto,
actúan sobre cada línea).
30. Cambia la primera aparición en cada línea de la letra “a” por “@”.
31. Cambia todas las apariciones de la letra “a” por “@”.
32. Cambia todas las apariciones de la palabra España por Spain.
33. Reemplaza todas las vocales de minúsculas a mayúsculas (puedes usar
tuberías, concatenar varias expresiones regulares, la opción
“y/caracteres_a_reemplazar/caracteres_reemplazados/”...).
34. Elimina todas la apariciones de la letra “e”.
35. Elimina todas las vocales (mayúsculas, minúsculas, acentuadas o no).
36. Elimina todos los espacios en blanco.