Regex mit sed/awk kombinieren
Integrieren Sie reguläre Ausdrücke in „sed“- und „awk“-Befehle für fortgeschrittene Textfilterung, Ersetzung und Datenextraktion.
Regex mit sed/awk kombinieren ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Regex mit sed und awk
Willkommen bei der letzten Lektion zu regulären Ausdrücken! Sie haben die Leistungsfähigkeit von Regex für den Mustervergleich kennengelernt.
Nun kombinieren wir diese Leistung mit zwei unverzichtbaren Linux-Werkzeugen: sed (Stream-Editor) und awk (Programmiersprache zur Mustererkennung und Verarbeitung). Diese Integration ermöglicht eine äußerst leistungsfähige Textfilterung, Textersetzung und Datenextraktion.
sed: Filtern mit Regex
sed kann reguläre Ausdrücke zum Filtern von Zeilen verwenden. Mit der Adresse /pattern/ weisen Sie sed an, Befehle nur auf Zeilen anzuwenden, die dem angegebenen regulären Ausdruck entsprechen.
Die Option -n unterdrückt die Standardausgabe, und p gibt passende Zeilen ausdrücklich aus.
echo -e "apple
banana
orange" | sed -n '/an/p'sed: Ersetzen mit Regex
Der Befehl s/regex/replacement/ in sed zeigt die Stärke von Regex bei der Textumwandlung. Sie können von Ihrem regulären Ausdruck gefundene Muster durch neuen Text ersetzen.
Das Flag g ersetzt alle Vorkommen in einer Zeile, und i sorgt für eine Übereinstimmung ohne Beachtung der Groß- und Kleinschreibung.
echo "Hello world, hello universe" | sed 's/hello/hi/gi'sed: Erfassungsgruppen und Rückverweise
Mit regulären Ausdrücken können Sie mithilfe runder Klammern () Erfassungsgruppen definieren. Anschließend können Sie im Ersetzungstext mit Rückverweisen wie \1, \2 usw. auf den von diesen Gruppen gefundenen Text verweisen.
Verwenden Sie -E mit sed für die Syntax erweiterter regulärer Ausdrücke, beispielsweise für () ohne Escape-Zeichen.
echo "Doe, John" | sed -E 's/([A-Za-z]+), ([A-Za-z]+)/\2 \1/'awk: Datensätze mit Regex filtern
awk verwendet reguläre Ausdrücke, um Datensätze (Zeilen) auszuwählen, bevor Aktionen ausgeführt werden. Wenn vor einem Aktionsblock {...} ein Muster angegeben wird, wird die Aktion nur für Zeilen ausgeführt, die diesem Muster entsprechen.
Das ähnelt grep, ermöglicht jedoch eine komplexere Verarbeitung.
echo -e "Line 1: apple
Line 2: banana
Line 3: orange" | awk '/banana/'awk: Regex auf bestimmte Felder anwenden
In awk können Sie reguläre Ausdrücke mithilfe der Operatoren ~ (entspricht) und !~ (entspricht nicht) auf bestimmte Felder anwenden. Das ist für strukturierte Daten besonders leistungsfähig.
Beispielsweise prüft $1 ~ /pattern/, ob das erste Feld dem regulären Ausdruck entspricht.
echo "Name: John, Age: 30
Name: Jane, Age: 25" | awk '$1 ~ /Name/ {print $2}'awk: Übereinstimmungen extrahieren (match, substr)
awk stellt Funktionen wie match(string, regex) bereit, um Position und Länge einer Übereinstimmung zu ermitteln, sowie substr(string, start, length), um sie zu extrahieren.
Nach match() enthält RSTART die Startposition und RLENGTH die Länge der Übereinstimmung.
echo "ItemCode: ABC123 Price: 45.67" | awk '{match($0, /[0-9]+\.[0-9]+/); print substr($0, RSTART, RLENGTH)}'awk: Ersetzen direkt im Text (sub, gsub)
awk verfügt außerdem über integrierte Funktionen zum Ersetzen: sub(regex, replacement, target) für die erste Übereinstimmung und gsub(regex, replacement, target) für alle Übereinstimmungen.
Wenn target weggelassen wird, wird $0 (der gesamte Datensatz) verwendet. Sie können ein Feld wie $1 angeben.
echo "apple,banana,orange" | awk '{gsub(/a/, "X", $0); print}'Zwischen sed und awk wählen
Sowohl sed als auch awk können Regex zum Ersetzen und Filtern verwenden, sind aber in unterschiedlichen Bereichen besonders stark:
sedeignet sich im Allgemeinen besser für einfache zeilenweise Umwandlungen und Ersetzungen. Es ist ein Stream-Editor.awkist leistungsfähiger bei der Verarbeitung strukturierter Daten (Felder), bei Berechnungen und beim Umgang mit komplexerer Logik oder mehrzeiligen Mustern. Es ist selbst eine Programmiersprache.
Oft können Sie beide mit Pipes | verketten, um sehr komplexe Aufgaben zu erledigen.
Herausforderung: Extrahieren und umwandeln
Betrachten Sie die folgende Textzeile:
Order#12345: ProductX - Price $19.99Welcher Befehl würde korrekt den Preis (z. B. „19.99“) extrahieren und anschließend das Währungssymbol in „EUR“ ändern?
Zusammenfassung: Regex mit sed und awk
Sie beherrschen nun die Kombination regulärer Ausdrücke mit sed und awk!
sedeignet sich hervorragend zum zeilenweisen Filtern und Ersetzen von Text und verwendet Regex für leistungsstarken Mustervergleich und Ersetzungen.awkbietet einen programmatischeren Ansatz: Mit Regex können Sie Datensätze filtern, innerhalb bestimmter Felder suchen und mithilfe von Funktionen wiematch(),substr(),sub()undgsub()Daten extrahieren und ändern.
Diese Fähigkeit ist für die fortgeschrittene Textverarbeitung und Skripterstellung unter Linux von entscheidender Bedeutung.
Häufig gestellte Fragen
Ist die Lektion „Regex mit sed/awk kombinieren“ kostenlos?
Ja — der vollständige Text von „Regex mit sed/awk kombinieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Regex mit sed/awk kombinieren“?
Integrieren Sie reguläre Ausdrücke in „sed“- und „awk“-Befehle für fortgeschrittene Textfilterung, Ersetzung und Datenextraktion. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um DevOps Bootcamp zu starten?
Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Regex mit sed/awk kombinieren“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?
Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Einführung in reguläre Ausdrücke (Regex)
- Fortgeschrittene Suche mit Grep und Regex
- Regex mit sed/awk kombinieren
- Capture Groups, Backreferences und Substitution