IES Miguel Romero Esteo - Departamento de Informática - Linux/Unix

Bases2 / Operaciones con expresiones regurales

Comandos:

grep, vi, cat, sed, nl, find, ls

Recursos:

Repositorio de documentos sobre expresiones regulares
Referencias útiles sobre el comando sed

Enunciado:


    Hacer login a la máquina vms con el usuario del alumno (en adelante $USER)


Nombres de archivo y expresiones regulares.

    Crear el directorio $HOME/bases2/bases_p10/ejercicio1, entrar en su interior y realizar las operaciones necesarias con el comando touch para que al ejecutar el comando ls -1 se visualice en la salida estandard lo siguiente:


bd.class.php
header.inc.php
install.txt
readme.txt
prueba
index.php
mail.class.php



    Haciendo uso de expresiones regurales y de los comandos ls|grep (ls no procesa regex pero grep sí) y find,  realizar las siguientes operaciones. El resultado de cada una de ellas debe quedar contenido en un fichero (son 12 ficheros). El nombre de cada fichero responderá a este patrón: $HOME/bases2/bases_p10/ejercicio1/operacion_<N>_ls-grep (<N> es el número a la izquierda de cada operación). En cada fichero, en la primera línea, debe aparecer el comando utilizado tal y como se visualiza en el prompt antes de ser ejecutado.

    NOTA: Se recuerda al alumno que, el comando find, busca expresiones regulares en toda la cadena de caracteres devuelta para cada ocurrencia (el path completo),  NO SOLO EN EL NOMBRE del fichero como hace con el modificador -name.

1.

Muestra los nombres de archivo que terminan en .php

2.

Muestra los nombres de archivo que tengan la letra e en segunda posición.

3.

Muestra los nombres de archivo cuya primera letra esté comprendida entre a y e

4.

Muestra los nombres de archivo que no comienzan por una vocal

5.

Muestra los nombres de archivo que no terminan en .php

6.

Muestra los nombres de archivo que no terminan ni con .txt ni con .php


Expresiones regulares con grep

Partiendo del archivo php.ini.txt

1.

Muestre las líneas que comienzan con "mysql".

2.

Muestre las líneas que terminan con "On".

3.

Muestre las líneas que terminan con "On" y que no tengan un ";" en la primera posición.

4.

Muestre las líneas que terminan en "On" (sin diferenciar mayúsculas y minúsculas).


Inserción de marcadores en un archivo

Sea el archivo $HOME/bases2/bases_p10/fechas_curs.txt:

$ cat $HOME/bases2/bases_p10/fechas_curs.txt 
unix 
28-30 ene 
17-19 jun 
18-20 nov 
 
shell 
23 mar 
15 jul 
7 sep

Empleando el comando sed, transforme este archivo de la siguiente forma:

unix 
<date>28-30 ene</date> 
<date>17-19 jun</date> 
<date>18-20 nov</date> 
 
 
shell 
<date>23 mar</date>  
<date>15 jul</date>  
<date>7 sep</date> 


Formato de archivos

Copia el archivo /etc/profile al directorio $HOME/bases2/bases_p10/ con el nombre profile_copy y realiza las siguientes operaciones:

Muestre el archivo con el comando nl, que numera las líneas:

$ nl profile_copy
     1  # .bash_profile 
    
     2  # Get the aliases and functions  
     3  if [ -f ~/.bashrc ]; then  
     4          . ~/.bashrc  
     5  fi  
         
     6  # User specific environment and startup programs  
     7  PATH=$PATH:$HOME/bin

1.

Redireccionando la salida estandar de nl a la entrada estandar de sed, eliminar los espacios que preceden a los números de línea.