Curso  Básico de UNIX

Preguntas y Ejercicios. 
Ficha Referencia: Expresiones Regulares

 

En algunos de los ejercicios que siguen se pide usar el archivo uy_hist1.txt. Copiarlo en el directorio de trabajo antes de comenzar. Los comandos grep y grep -E buscan líneas que contengan expresiones regulares básicas y extendidas, respectivamente.

1. El archivo uy_hist1.txt fue obtenido de Internet con un navegador en DOS. Usar el editor vi en sólo lectura, para verificar la presencia del caracter visualizado como "^M", correspondiente a retorno de carro (CR). Crear el archivo historia1.txt, eliminando el caracter CR. Verificar con vi.

2. Abrir el archivo historia1.txt con el editor vi, en sólo lectura. Buscar hacia adelante (comando /), la palabra "Uruguay". Reiterar la búsqueda (comando n) hasta verificar que recomienza al principio del archivo. Repetir hacia atrás (comando ?).

3. Con el comando grep, extraer del archivo historia1.txt líneas que empiecen con la cadena "es". Buscar luego líneas que terminen con la cadena "del".

4. Crear el archivo palabras.txt, que contiene todas las palabras del archivo historia1.txt, una por línea. Recordar que en español existen la ñ y las vocales acentuadas. Verificar con vi -R o more.

5. Una misma palabra puede a veces contener una mayúscula, o estar escrita totalmente en mayúsculas, lo que la hará  aparecer como palabras distintas. Crear el archivo palabras.min con todas las palabras del archivo palabras.txt en minúsculas.

6. En el archivo historia1.txt mostrar
a) líneas que empiecen con "a";
b) líneas que terminen con "l";
c) líneas que empiecen con "e" y terminen con "l".

7. En el archivo historia1.txt mostrar
a) líneas que contengan la palabra "ganado";
b) líneas que contengan la palabra "gaucho" y "ganado";
c) líneas que contengan la palabra "ganado" pero no la palabra "vacuno".

8. En un archivo de texto se debe determinar
a) cantidad de líneas que contengan la cadena "se".
b) cantidad de líneas que contengan la palabra "se".
c) cantidad de líneas que contengan "se" dentro de una palabra.
d) líneas que contengan al mismo tiempo la palabra "se" separada y la cadena "se" como parte de palabra.
Construir primero un "juego de prueba" (un archivo de texto) contemplando todas las posiblidades de ubicación de los caracteres "se" como palabra y como cadena, en el medio y a los extremos de palabra, al principio de línea o al final de línea, etc. Verificar la correcta detección en todos los casos pedidos. Verificar finalmente que la suma "cierra".

9. Crear el archivo histo1.txt con las primeras 5 líneas del archivo historia1.txt que contengan sólo minúsculas y eliminando las líneas en blanco. Eliminar la primera línea en blanco parece difícil. ¿Puede hacerse?

10. Sin considerar vocales acentuadas, mostrar el archivo histo1.txt
a) con las vocales en mayúsculas y las consonantes en minúsculas;
b) con las vocales en minúscula y las consonantes en mayúscula.

11. Mostrar el archivo historia1.txt eliminando todas las vocales, sean éstas mayúsculas o minúsculas y estén acentuadas o no. ¿Puede leerse el texto tal como queda?

12. Un diptongo está  formado por dos vocales, una fuerte y una débil, o dos débiles. Las vocales fuertes son a, e, o; las vocales débiles son i, u. La acentuación de u o i destruye el diptongo. En el archivo historia1.txt
a) mostrar todas las palabras con diptongo formado por dos vocales débiles, ordenadas y sin repetir;
b) mostrar del mismo modo todos los diptongos con a;
c) buscar una expresión regular mínima que despliegue todos los diptongos.

13. Usando el archivo /etc/passwd, y el listado de usuarios con  ypcat passwd si el sistema usa NIS, extraer los siguientes registros:
a) usuarios con la palabra "Unix" al principio del campo de comentario.
b) usuarios del grupo 101.
c) usuarios de los grupos 100, 101 o 105.
d) usuarios con directorio propio de la forma "/home/un*".
e) usando /etc/passwd, listar usuarios con UID de 1 digitos.
f) usando /etc/passwd, listar usuarios con UID de 1 o 2 digitos
g) usuarios con nombre de exactamente 4 caracteres.
h) usuarios con nombre de 4 caracteres empezando con r.
 
 


Víctor A. González Barbone  vagonbar en fing edu uy
Instituto de Ingeniería Eléctrica - Facultad de Ingeniería - Montevideo, Uruguay.