Herramientas de Programación

Curso 2003-2004

Prácticas 5 y 6: 

Ejercicios sobre el intérprete de órdenes (la shell bash)

En estas dos sesiones, el trabajo consistirá en realizar una colección de ejercicios utilizando el intérprete de órdenes de Linux. 

Ejercicios

1.-

Escribe un programa de shell que nos muestre por pantalla información sobre los usuarios conectados en este momento al sistema. Además nos debe mostrar la lista de usuarios ordenada por el uso que hacen del sistema.

2.-

Haz un programa que nos muestre el uso de disco de tu directorio home, ordenado por directorios de mayor a menor uso.

3.-

Realiza un programa que diga qué usuarios con uid 8xxx y gid 8000 (alumnos) están conectados a la máquina en este momento.

4.-

Haz un programa que tome como argumento un archivo fuente de C++ y diga cuál es el número de métodos definidos para cada clase. Se supone que las definiciones de tipo clase::metodo aparecen al inicio de una línea.

5.-

Haz un programa que extraiga de un archivo fuente de C++ las definiciones de los métodos y las agrupe en un archivo, una por línea.

6.-

Haz un programa que, a partir del archivo generado por el ejercicio anterior, genere otro con la lista de métodos.

7.-

 Haz un programa que diga cuántos archivos de tipo include (.h) hay en el directorio /usr/include y en sus subdirectorios.

8.-

Lo mismo que en el ejercicio anterior, pero indicando cuántos hay en concreto en cada subdirectorio.

9.-

De manera análoga al ejercicio anterior, pero mostrando ordenados sólo los 10 subdirectorios con más archivos de tipo include.

10.-

Similarmente al ejercicio anterior, pero ahora mostrando los 10 subdirectorios con mayor contenido (en bytes).

11.-

Haz un programa que muestre en qué línea de qué archivo, de los contenidos en el directorio /usr/include, está definida la macro max.

En el siguiente bloque de ejercicios se va a trabajar siempre con el mismo archivo: "/iilabs/HP/PR5/morfobd.pl". El formato de las líneas de interés de dicho fichero es: <categoria>(<argumentos>).

Ejemplo: adjetivo("acabada","acabado",calificativo,no,femenino,singular,no).

12.-

Teniendo en cuenta lo anterior, definir una variable de entorno con el nombre del fichero.

13.-

Listar las 5 primeras líneas con sustantivo.

14.-

Listar las 5 ultimas líneas con adjetivo.

15.-

Listar el número de palabras de cada categoría.

16.-

Listar un ejemplo de cada categoría.

17.-

Listar los distintos géneros (ej: femenino) posibles para los adjetivos.

18.-

Listar los distintos números (ej: singular) posibles para los sustantivos.

19.-

Listar las posibles categorías de la palabra "que".
20.-
Generar un fichero para cada categoría con las palabras solamente.

21.-

Usando los ficheros anteriores, obtener las palabra comunes de sustantivo-adjetivo y determinante-pronombre.

22.-

Listar el numero de argumentos de cada categoría.

23.-

Generar un listado desordenado alfabéticamente de 200 sustantivos. Sugerencia: usar otro criterio de ordenación.

24.-

Generar un fichero de adjetivos con el formato: <palabra>: <genero> <numero>

25.-

¿Cuantos adjetivos terminan en "a"?

26.-

¿Cuantos adjetivos terminan en "e"?

27.-

¿Cuantos adjetivos terminan en "i"?

28.-

¿Cuantos adjetivos terminan en "o"?

29.-

¿Cuantos adjetivos terminan en "u"?

En el siguiente bloque de ejercicios se va a trabajar siempre con el archivo el fichero
"/iilabs/HP/PR5/libros.txt" que contiene lineas de información sobre libros: su autor y el título separados por la cadena " - ".

Ejemplo: Benedetti, Mario - A imagen y semejanza

 

Nota: algunos nombres de autor contienen guiones.

30.-

Generar un guión de shell que permita obtener el autor de cierto libro identificado por el título que se le pasa como argumento.

31.-

Generar un guión de shell que permita obtener el autor de cierto libro identificado por el título que se le pasa por la entrada estandar.

32.-

Muestre los títulos de todos los libros de un cierto autor.

33.-

Muestre el total de títulos que existen en el fichero de un cierto autor.

34.-

Comprobar si hay títulos repetidos: mismo título para varios autores. Si los hay, mostrar los 10 más repetidos.

35.-

Muestre los autores (nombre completo con el apellido) cuyo nombre contiene la palabra Juan

36.-

Muestre los 5 nombres de pila más repetidos.
37.-
Muestre los 5 apellidos más comunes.

38.-

Liste los 5 autores con más libros en el fichero (junto con la
cantidad de libros de cada uno).