Introduction
Dans ce projet, vous allez apprendre à extraire des informations de liens à partir de documents Markdown à l'aide d'un script Bash. Il s'agit d'une tâche courante dans le développement logiciel, où les développeurs doivent traiter et extraire des informations spécifiques à partir de documents basés sur le texte.
👀 Aperçu
$./getlink.sh labex_lab1.md
course https://labex.io/courses/
🎯 Tâches
Dans ce projet, vous allez apprendre :
- Comment créer un script Bash pour extraire le texte et les URL d'un lien à partir d'un document Markdown
- Comment utiliser des expressions régulières et des outils de ligne de commande tels que
grepetpastepour traiter des données textuelles - Comment rendre un script exécutable et le lancer avec des arguments de ligne de commande
🏆 Réalisations
Après avoir terminé ce projet, vous serez capable de :
- Développer un script Bash qui peut extraire des informations de liens à partir de documents Markdown
- Comprendre la logique et la mise en œuvre du script, y compris l'utilisation d'expressions régulières et d'outils de ligne de commande courants
- Appliquer les compétences acquises dans ce projet à d'autres tâches de traitement de texte dans votre travail de développement logiciel
Créer le script getlink.sh
Dans cette étape, vous allez créer le script getlink.sh qui peut extraire tous les liens d'un document Markdown.
- Ouvrez un éditeur de texte et créez un nouveau fichier nommé
getlink.sh. - Ajoutez le code suivant au fichier :
#!/bin/bash
## Extrait le lien
grep -E "\[.*\]\(.+\)" "$1" | grep -vP '\!\[' | grep -oP '\[\K[^\]]+(?=\]\([^\)]+\))' > "links.txt"
grep -E "\[.*\]\(.+\)" "$1" | grep -vP '\!\[' | grep -oP '\]\(\K[^\)]+(?=\))' > "urls.txt"
## Fusionne les liens et les URL
paste -d' 'links.txt urls.txt
## Nettoie les fichiers temporaires
rm links.txt urls.txt
- Enregistrez le fichier.
Tester le script getlink.sh
Dans cette étape, vous allez tester le script getlink.sh en l'exécutant avec un fichier Markdown en tant qu'argument.
- Dans le même répertoire que le script
getlink.sh, il y a un fichier Markdown nommélabex_lab1.md. Ce fichier contient ceci :
Utilisez les catégories et les étiquettes de cours sur la page [course](https://labex.io/courses/) pour filtrer et rechercher des cours
- Exécutez le script
getlink.shavec le fichierlabex_lab1.mden tant qu'argument :
./getlink.sh labex_lab1.md
- Le script devrait afficher ceci :
course https://labex.io/courses/
Ce résultat montre que le script a extrait avec succès les informations de lien à partir du fichier Markdown.
Comprendre le script getlink.sh
Dans cette étape, vous allez comprendre le code du script getlink.sh.
Le script effectue les tâches suivantes :
- Extraire le texte du lien : La première commande
grepextrait le texte du lien à partir du fichier Markdown et le sauvegarde dans un fichier temporaire nommélinks.txt. La commandegrep -E "\[.*\]\(.+\)"correspond au format de lien Markdown[texte](url), et la commandegrep -vP '\!\['exclut les liens d'images. - Extraire les URL des liens : La deuxième commande
grepextrait les URL des liens à partir du fichier Markdown et les sauvegarde dans un fichier temporaire nomméurls.txt. La commandegrep -oP '\]\(\K[^\)]+(?=\))'capture la partie URL du format de lien Markdown. - Fusionner le texte du lien et les URL : La commande
paste -d' 'links.txt urls.txtfusionne le texte du lien et les URL à partir des fichiers temporaires, en les séparant par un espace. - Nettoyer les fichiers temporaires : La commande
rm links.txt urls.txtsupprime les fichiers temporaires créés pendant l'exécution du script.
En comprenant la logique du script, vous pouvez le modifier ou l'étendre pour répondre à vos besoins spécifiques, comme la gestion de différents types de liens ou la réalisation d'un traitement supplémentaire sur les informations extraites.
Résumé
Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.



