Ejercicio de programación con Bash: Expresiones regulares y manipulación de texto

Código
Práctica
0h 20m

Bash: Extraer de un archivo de texto utilizando expresiones regulares, eliminando duplicados y ordenando alfabéticamente, ejercicio de Expresiones regulares y manipulación de texto.

Escribe un script Bash que reciba como argumento la ruta de un archivo de texto que contiene varias líneas con posibles direcciones de correo electrónico. El script deberá realizar las siguientes tareas utilizando expresiones regulares:

Identificar y extraer todas las direcciones de correo electrónico que cumplan con el siguiente patrón:

  • Usuario: Puede incluir letras mayúsculas y minúsculas, números, puntos (.), guiones (-) y guiones bajos (_).
  • Dominio: Puede incluir letras, números y guiones (-).
  • Dominio de nivel superior (TLD): Debe contener entre 2 y 6 letras.

Guardar todas las direcciones válidas extraídas en un archivo llamado emails_extraidos.txt.

Asegurarse de que el archivo emails_extraidos.txt contenga únicamente direcciones únicas, sin repeticiones, y ordenadas alfabéticamente.

Entrada

Un archivo de texto con múltiples líneas que pueden contener o no direcciones de correo electrónico. Por ejemplo, entrada.txt:

Contacto: juan.perez@example.com
Correo alternativo: juan_perez@sub.example.co.uk
Dirección inválida: juan@.com
Otro contacto: maria-123@domain.org
Correo duplicado: juan.perez@example.com

Salida esperada

El archivo emails_extraidos.txt debe contener las siguientes direcciones:

juan.perez@example.com
maria-123@domain.org

Instrucciones:

  1. El script debe aceptar un argumento: la ruta al archivo de entrada.
  2. Utiliza grep con expresiones regulares para identificar las direcciones de correo válidas.
  3. Emplea otros comandos como sort y uniq para procesar los resultados.
  4. Al finalizar, el script debe generar el archivo emails_extraidos.txt en el mismo directorio donde se ejecuta.

Restricciones:

  • No se deben incluir direcciones de correo inválidas en el archivo de salida.
  • Las direcciones deben ser únicas y ordenadas alfabéticamente.
  • El script debe manejar archivos de entrada de cualquier tamaño de forma eficiente.

Ejemplo de ejecución:

Damos por hecho la existencia de un script entrada.txt con el contenido mencionado anteriormente. Al ejecutar el siguiente comando:

bash extraer_emails.sh entrada.txt

Se generará un archivo emails_extraidos.txt con el contenido esperado. Prueba en tu ordenador y escribe aquí tu código Bash.

Empezar ejercicio de programación

Todos los ejercicios de programación de Bash

Evalúa tus conocimientos con ejercicios de programación en Bash de tipo Test, Puzzle, Código y Proyecto con VSCode.

Certificados de superación de Bash

Supera todos los retos de Bash y obtén estos certificados de superación para mejorar tu currículum y tu empleabilidad.

Tutorial para resolver este ejercicio de programación

GNU Bash

Bash

Expresiones regulares y manipulación de texto

Sintaxis y creación de scripts en Bash

Otros tutoriales de programación con Bash

Principales Distribuciones De Linux

GNU Bash

Introducción Y Entorno

Instalar Ubuntu En Windows Con Wsl

GNU Bash

Introducción Y Entorno

Introducción A Shell Y Bash

GNU Bash

Introducción Y Entorno

Comandos De Navegación Pwd, Cd Y Ls

GNU Bash

Navegación Y Gestión De Archivos Y Directorios

Manipulación De Archivos Y Directorios

GNU Bash

Navegación Y Gestión De Archivos Y Directorios

Comprimir Y Descomprimir Archivos En Bash Con Tar Y Gzip

GNU Bash

Navegación Y Gestión De Archivos Y Directorios

Manipulación De Permisos De Archivos Y Directorios Con Chmod, Chown Y Chgrp

GNU Bash

Navegación Y Gestión De Archivos Y Directorios

Enlaces Simbólicos Y Duros

GNU Bash

Navegación Y Gestión De Archivos Y Directorios

Redirección Y Tuberías

GNU Bash

Navegación Y Gestión De Archivos Y Directorios

Gestión De Procesos Con Ps, Htop Y Pgrep

GNU Bash

Gestión De Procesos Y Servicios

Gestión De Servicios Con Systemd

GNU Bash

Gestión De Procesos Y Servicios

Configuración De Bash

GNU Bash

Interacción Con El Sistema

Redes Y Comunicación Con Ifconfig, Ip Y Netstat

GNU Bash

Interacción Con El Sistema

Transferencia De Archivos Y Comunicación Remota Con Ssh

GNU Bash

Interacción Con El Sistema

Gestión De Paquetes Y Dependencias Y Actualización Del Sistema

GNU Bash

Interacción Con El Sistema

Variables Y Tipos De Datos

GNU Bash

Sintaxis Y Creación De Scripts En Bash

Operadores

GNU Bash

Sintaxis Y Creación De Scripts En Bash

Sintaxis De Control De Flujo

GNU Bash

Sintaxis Y Creación De Scripts En Bash

Definición Y Uso De Funciones

GNU Bash

Sintaxis Y Creación De Scripts En Bash