Introducción
En este proyecto, aprenderás a extraer información de enlaces de documentos Markdown utilizando un script de Bash. Esta es una tarea común en el desarrollo de software, donde los desarrolladores necesitan procesar y extraer información específica de documentos basados en texto.
👀 Vista previa
$./getlink.sh labex_lab1.md
curso https://labex.io/cursos/
🎯 Tareas
En este proyecto, aprenderás:
- Cómo crear un script de Bash para extraer texto de enlace y URLs de un documento Markdown
- Cómo utilizar expresiones regulares y herramientas de línea de comandos como
grepypastepara procesar datos de texto - Cómo hacer que un script sea ejecutable y lo ejecute con argumentos de línea de comandos
🏆 Logros
Después de completar este proyecto, podrás:
- Desarrollar un script de Bash que pueda extraer información de enlaces de documentos Markdown
- Comprender la lógica y la implementación del script, incluyendo el uso de expresiones regulares y herramientas comunes de línea de comandos
- Aplicar las habilidades aprendidas en este proyecto a otras tareas de procesamiento de texto en tu trabajo de desarrollo de software
Crea el script getlink.sh
En este paso, crearás el script getlink.sh que puede extraer todos los enlaces de un documento Markdown.
- Abre un editor de texto y crea un nuevo archivo llamado
getlink.sh. - Agrega el siguiente código al archivo:
#!/bin/bash
## Extrae el enlace
grep -E "\[.*\]\(.+\)" "$1" | grep -vP '\!\[' | grep -oP '\[\K[^\]]+(?=\]\([^\)]+\))' > "links.txt"
grep -E "\[.*\]\(.+\)" "$1" | grep -vP '\!\[' | grep -oP '\]\(\K[^\)]+(?=\))' > "urls.txt"
## Fusiona los enlaces y las URLs
paste -d ' ' links.txt urls.txt
## Limpia los archivos temporales
rm links.txt urls.txt
- Guarda el archivo.
Prueba el script getlink.sh
En este paso, probarás el script getlink.sh ejecutándolo con un archivo Markdown como argumento.
- En el mismo directorio que el script
getlink.shhay un archivo Markdown llamadolabex_lab1.md. Este archivo contiene lo siguiente:
Use the course categories and tags on the [course](https://labex.io/courses/) page to filter and search for courses
- Ejecuta el script
getlink.shcon el archivolabex_lab1.mdcomo argumento:
./getlink.sh labex_lab1.md
- El script debe mostrar la siguiente salida:
curso https://labex.io/cursos/
Esta salida muestra que el script ha extraído con éxito la información de enlace del archivo Markdown.
Comprende el script getlink.sh
En este paso, entenderás el código del script getlink.sh.
El script realiza las siguientes tareas:
- Extrae el texto del enlace: El primer comando
grepextrae el texto del enlace del archivo Markdown y lo guarda en un archivo temporal llamadolinks.txt. El comandogrep -E "\[.*\]\(.+\)"coincide con el formato de enlace Markdown[texto](url), y el comandogrep -vP '\!\['excluye los enlaces de imágenes. - Extrae las URLs de los enlaces: El segundo comando
grepextrae las URLs de los enlaces del archivo Markdown y las guarda en un archivo temporal llamadourls.txt. El comandogrep -oP '\]\(\K[^\)]+(?=\))'captura la parte de la URL del formato de enlace Markdown. - Fusiona el texto del enlace y las URLs: El comando
paste -d ' ' links.txt urls.txtfusiona el texto del enlace y las URLs de los archivos temporales, separándolos con un espacio. - Limpia los archivos temporales: El comando
rm links.txt urls.txtelimina los archivos temporales creados durante la ejecución del script.
Al entender la lógica del script, puedes modificar o ampliarlo para adaptarlo a tus necesidades específicas, como manejar diferentes tipos de enlaces o realizar un procesamiento adicional en la información extraída.
Resumen
¡Felicidades! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.



