Ejercicios prácticos de comandos Linux: Expresiones regulares y redirecciones

Sección 1: Uso de `grep`, `egrep` y `fgrep`

Ejercicio 1: Escriba a qué ficheros corresponderían las líneas que seleccionaría la última orden. Separe los nombres de los ficheros por comas (escriba «NADA» si la salida fuera vacía):

1) `$ ls -l`

  • `-rw-r–r– 1 tiopepe users 0 dic 14 07:00 f1`
  • `-rw-r–r-x 1 tiopepe users 0 dic 14 07:00 f2`
  • `-r–r–r– 1 tiopepe users 0 dic 14 07:00 f3`

`$ ls -l | grep «r*w»`

Respuesta: f1, f2.

2) `$ ls -l`

  • `-r–r–r– 1 tiopepe users 0 dic 14 07:00 f`
  • `-rwxr–r– 1 tiopepe users 0 dic 14 07:00 f1`
  • `-rw-r–r-x 1 tiopepe users 0 dic 14 07:00 f2`

`$ ls -l | egrep -w «pe(pe)+»`

Respuesta: NADA.

3) `$ ls -l`

  • `-rw-r–r– 1 tiopepe users 0 dic 14 07:00 f1`
  • `-rw-r–r-x 1 tiopepe users 0 dic 14 07:00 f2`
  • `-r–r–r– 1 tiopepe users 0 dic 14 07:00 f3`

`$ ls -l | grep «rw+»`

Respuesta: NADA.

4) `$ ls -l`

  • `-rwxr–r– 1 tiopepe users 0 dic 14 07:00 f1`
  • `-rw-r–r-x 1 tiopepe users 0 dic 14 07:00 f2`
  • `-r–r–r– 1 tiopepe users 0 dic 14 07:00 f3`

`$ ls -l | grep «rwx*»`

Respuesta: f1, f2.

5) `$ ls -l`

  • `-rw-r–r– 1 tiopepe users 0 dic 14 07:00 f1`
  • `-rw-r–r-x 1 tiopepe users 0 dic 14 07:00 f2`
  • `-r–r–r– 1 tiopepe users 0 dic 14 07:00 f3`

`$ ls -l | grep «rw*»`

Respuesta: f1, f2, f3.

6) `$ ls -l`

  • `-r–r–r– 1 tiopepe users 0 dic 14 07:00 f`
  • `-rwxr–r– 1 tiopepe users 0 dic 14 07:00 f1`
  • `-rw-r–r-x 1 tiopepe users 0 dic 14 07:00 f2`

`$ ls -l | grep -i «u*sEr»`

Respuesta: f, f1, f2.

Ejercicio 2: Escriba las líneas que seleccionaría `grep` separadas por comas (escriba «NADA» si la salida fuera vacía):

`$ cat ficherito`

`//casa//casamentera//casa tarradellas//cosa//`

`$ grep ‘c*sa’ ficherito`

Respuesta: casa, casamentera, casa tarradellas, cosa.

Ejercicio 3: Escriba las líneas que seleccionaría `egrep` separadas por comas (escriba «NADA» si la salida fuera vacía):

`$ cat ficherito`

`//casa//casamentera//casa tarradellas//cosa//`

`$ egrep «c|sasa» ficherito`

Respuesta: casa, casamentera, casa tarradellas, cosa.

Ejercicio 4: Escriba las líneas que seleccionaría `fgrep` separadas por comas (escriba «NADA» si la salida fuera vacía):

`$ cat ficherito`

`//casa//casamentera//casa tarradellas//cosa//`

`$ fgrep «c*sa» ficherito`

Respuesta: NADA.

Ejercicio 5: Escriba las líneas que seleccionaría `fgrep` separadas por comas (escriba «NADA» si la salida fuera vacía):

`$ cat ficherito`

`//casa//casamentera//casa tarradellas//cosa//`

`$ fgrep casa ficherito`

Respuesta: casa, casamentera, casa tarradellas.

Ejercicio 6: ¿Cuáles de los siguientes caracteres son caracteres especiales para las expresiones regulares extendidas?

1) `*`, `?`, `$`, `[`, `)`, `+`.

Respuesta: `*`, `?`, `$`, `[`, `)`, `+`.

2) `+`, `?`, `$`, `[`, `!`

Respuesta: `+`, `?`, `$`, `[`

Ejercicio 7: ¿Cuáles de los siguientes caracteres son caracteres especiales para las expresiones regulares básicas?

1) `*`, `.`, `$`, `!`

Respuesta: `*`, `.`, `$`

2) `*`, `?`, `$`, `[`

Respuesta: `*`, `$`, `[`

Sección 2: Redirecciones y tuberías

Ejercicio 8: ¿Cuántas líneas contendrá el fichero `result` tras la siguiente secuencia?:

`$ ls`

`$ echo «INICIO» > result`

`$ ls -l /etc/passwd 2>> result`

Respuesta: 1.

Ejercicio 9: ¿Cuántas líneas tendrá el fichero `f1` tras la secuencia de órdenes?:

`$ ls -l / | tee f1 | wc -l`

`//20//`

`$ cat f2`

`//CC-by//CC-by-sa//`

`$ cat f2 >> f1`

Respuesta: 22.

Ejercicio 10: ¿Cuál es el resultado de la última orden?:

`$ cat f1`

`//Richard//`

`$ cat f2`

`//Stallman//`

`$ { cat f2; cat f1; } | wc -l`

Respuesta: 3.

Ejercicio 11: ¿Cuál es el resultado de la última orden de la secuencia?:

`$ cat f`

`//CASA//KAS//ACASA//CSA//`

`$ cat f | tr -d A | uniq | wc -l`

Respuesta: 3.

Ejercicio 12: ¿Cuál es la salida de la siguiente orden?:

`$ ls -ld /tmp | colrm 11 | colrm 1 9`

Respuesta: t.

Ejercicio 13: ¿Cuál es la salida de la siguiente orden?:

`$ ls`

`$ echo «A ver» > f`

`$ chmod 753 f`

`$ ls -l f | colrm 11`

Respuesta: -rwxr-x-wx

Ejercicio 14: Suponga la secuencia de órdenes:

`$ cat f1`

`//Hola//`

`$ cat f2`

`//Adiós//`

`$ ordendesconocida`

`$ cat f1`

`//Hola//Adiós`

Respuesta: `cat f2 >> f1`

Ejercicio 15: ¿Cuál es la orden desconocida en esta secuencia de órdenes?:

`$ cat f1`

`//10//9//1//3//`

`$ ordendesconocida`

`$ cat f1`

`//1//3//9//10`

Respuesta: `sort -n f1 -o f1`.

Ejercicio 16: ¿Cuál es la orden desconocida de la siguiente secuencia?:

`$ echo «GPL» > fich`

`$ echo «CC» > fich`

`$ ordendesconocida`

`$ ls > fich`

`//bash: f: cannot overwrite existing file`

Respuesta: `set -o noclobber`.

Ejercicio 17: Suponga la siguiente secuencia de órdenes:

`$ cat fichero`

`//f1//`

`$ ls d1`

`//f2//`

`$ ordendesconocida`

`$ cat fichero`

`//f1//f2`

Respuesta: `ls d1 >> fichero`.

Ejercicio 18: ¿Daría error alguna de las órdenes de la siguiente secuencia?:

`$ ls`

`$ set +o noclobber`

`$ ls > fich`

`$ set -o noclobber`

`$ ls > fich`

Respuesta: SI.

Ejercicio 19: Obtenga un listado en el que únicamente aparezcan los nombres reales de los usuarios del sistema junto con su shell por defecto:

Respuesta: `cut -d: -f5,7 /etc/passwd`.

Ejercicio 20: Escriba la orden que muestre del directorio actual los ficheros (no directorios) en los que el dueño posee al menos los permisos de lectura y ejecución.

Respuesta: `ls -l | grep «^-r.x»`

Ejercicio 21: ¿Qué orden hay que dar para redirigir solo la salida de la orden `ls` a un fichero denominado `listado`?:

Respuesta: `ls > listado`

Sección 3: Comparación de ficheros

Ejercicio 22: Rellena la siguiente frase:

`$ cat f1`

`//MAN//INFO//MAN//HELP//APROPOS//`

`$ cat f1 | uniq > f2`

Respuesta: El número de líneas de `f1` es IGUAL que el de `f2`.

Ejercicio 23: Tras la siguiente serie de órdenes (…):

`$ cat /etc/passwd | sort > f1`

`$ cat /etc/passwd | sort -u > f2`

Respuesta: El número de líneas de `f1` es IGUAL que el de `f2`.

Ejercicio 24: Tras las siguientes órdenes:

`$ ls d1 2> f1`

`$ ls d2 2> f2`

`$ ls d3 2> f2`

Respuesta: El número de líneas de `f1` es DEPENDE que el de `f2`.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.