Einführung
In diesem Projekt lernst du, wie du Linkinformationen aus Markdown-Dokumenten mit einem Bash-Skript extrahierst. Dies ist eine häufige Aufgabe in der Softwareentwicklung, bei der Entwickler spezifische Informationen aus textbasierten Dokumenten verarbeiten und extrahieren müssen.
👀 Vorschau
$./getlink.sh labex_lab1.md
course https://labex.io/courses/
🎯 Aufgaben
In diesem Projekt wirst du lernen:
- Wie du ein Bash-Skript erstellst, um Linktexte und URLs aus einem Markdown-Dokument zu extrahieren
- Wie du reguläre Ausdrücke und Befehlszeilentools wie
grepundpasteverwendest, um Text-Daten zu verarbeiten - Wie du ein Skript ausführbar machst und es mit Befehlszeilenargumenten ausführst
🏆 Errungenschaften
Nach Abschluss dieses Projekts wirst du in der Lage sein:
- Ein Bash-Skript zu entwickeln, das Linkinformationen aus Markdown-Dokumenten extrahieren kann
- Die Logik und Implementierung des Skripts zu verstehen, einschließlich der Verwendung von regulären Ausdrücken und üblichen Befehlszeilentools
- Die in diesem Projekt erlernten Fähigkeiten auf andere Textverarbeitungstasks in deiner Softwareentwicklungstätigkeit anzuwenden
Erstelle das Skript getlink.sh
In diesem Schritt wirst du das Skript getlink.sh erstellen, das alle Links aus einem Markdown-Dokument extrahieren kann.
- Öffne einen Texteditor und erstelle eine neue Datei namens
getlink.sh. - Füge den folgenden Code zur Datei hinzu:
#!/bin/bash
## Extract link
grep -E "\[.*\]\(.+\)" "$1" | grep -vP '\!\[' | grep -oP '\[\K[^\]]+(?=\]\([^\)]+\))' > "links.txt"
grep -E "\[.*\]\(.+\)" "$1" | grep -vP '\!\[' | grep -oP '\]\(\K[^\)]+(?=\))' > "urls.txt"
## Merge links and URLs
paste -d ' ' links.txt urls.txt
## Clean up temporary files
rm links.txt urls.txt
- Speichere die Datei.
Teste das Skript getlink.sh
In diesem Schritt wirst du das Skript getlink.sh testen, indem du es mit einer Markdown-Datei als Argument ausführst.
- Im selben Verzeichnis wie das Skript
getlink.shbefindet sich eine Markdown-Datei namenslabex_lab1.md. Diese Datei enthält Folgendes:
Use the course categories and tags on the [course](https://labex.io/courses/) page to filter and search for courses
- Führe das Skript
getlink.shmit der Dateilabex_lab1.mdals Argument aus:
./getlink.sh labex_lab1.md
- Das Skript sollte Folgendes ausgeben:
course https://labex.io/courses/
Dieser Output zeigt, dass das Skript die Linkinformationen erfolgreich aus der Markdown-Datei extrahiert hat.
Verstehe das Skript getlink.sh
In diesem Schritt wirst du den Code im Skript getlink.sh verstehen.
Das Skript führt folgende Aufgaben aus:
- Extraktion von Linktext: Der erste
grep-Befehl extrahiert den Linktext aus der Markdown-Datei und speichert ihn in einer temporären Datei namenslinks.txt. Der Befehlgrep -E "\[.*\]\(.+\)"passt auf das Markdown-Linkformat[text](url)und der Befehlgrep -vP '\!\['exkludiert Bild-Links. - Extraktion von Link-URLs: Der zweite
grep-Befehl extrahiert die Link-URLs aus der Markdown-Datei und speichert sie in einer temporären Datei namensurls.txt. Der Befehlgrep -oP '\]\(\K[^\)]+(?=\))'erfasst den URL-Teil des Markdown-Linkformats. - Vereinigung von Linktext und URLs: Der Befehl
paste -d ' ' links.txt urls.txtvereinigt den Linktext und die URLs aus den temporären Dateien, trennend sie mit einem Leerzeichen. - Bereinigung von temporären Dateien: Der Befehl
rm links.txt urls.txtentfernt die temporären Dateien, die während der Ausführung des Skripts erstellt wurden.
Indem du die Logik des Skripts verstehst, kannst du es modifizieren oder erweitern, um deine spezifischen Anforderungen zu erfüllen, wie z. B. das Handling von verschiedenen Linktypen oder die Durchführung zusätzlicher Verarbeitungen auf den extrahierten Informationen.
Zusammenfassung
Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Labs absolvieren, um deine Fähigkeiten zu verbessern.



