Extraction d'informations de liens à partir de texte

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

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 grep et paste pour 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

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux/BasicFileOperationsGroup -.-> linux/rm("File Removing") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/TextProcessingGroup -.-> linux/sed("Stream Editing") linux/TextProcessingGroup -.-> linux/paste("Line Merging") subgraph Lab Skills linux/rm -.-> lab-301471{{"Extraction d'informations de liens à partir de texte"}} linux/grep -.-> lab-301471{{"Extraction d'informations de liens à partir de texte"}} linux/sed -.-> lab-301471{{"Extraction d'informations de liens à partir de texte"}} linux/paste -.-> lab-301471{{"Extraction d'informations de liens à partir de texte"}} end

Créez 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.

  1. Ouvrez un éditeur de texte et créez un nouveau fichier nommé getlink.sh.
  2. 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
  1. Enregistrez le fichier.

Testez 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.

  1. 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
  1. Exécutez le script getlink.sh avec le fichier labex_lab1.md en tant qu'argument :
./getlink.sh labex_lab1.md
  1. 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.

Comprenez le script getlink.sh

Dans cette étape, vous allez comprendre le code du script getlink.sh.

Le script effectue les tâches suivantes :

  1. Extraire le texte du lien : La première commande grep extrait le texte du lien à partir du fichier Markdown et le sauvegarde dans un fichier temporaire nommé links.txt. La commande grep -E "\[.*\]\(.+\)" correspond au format de lien Markdown [texte](url), et la commande grep -vP '\!\[' exclut les liens d'images.
  2. Extraire les URL des liens : La deuxième commande grep extrait les URL des liens à partir du fichier Markdown et les sauvegarde dans un fichier temporaire nommé urls.txt. La commande grep -oP '\]\(\K[^\)]+(?=\))' capture la partie URL du format de lien Markdown.
  3. Fusionner le texte du lien et les URL : La commande paste -d' 'links.txt urls.txt fusionne le texte du lien et les URL à partir des fichiers temporaires, en les séparant par un espace.
  4. Nettoyer les fichiers temporaires : La commande rm links.txt urls.txt supprime 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.

✨ Vérifier la solution et pratiquer

Sommaire

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.