0Pricing
DevOps Bootcamp · Lektion

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:

  • sed eignet sich im Allgemeinen besser für einfache zeilenweise Umwandlungen und Ersetzungen. Es ist ein Stream-Editor.
  • awk ist 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.99

Welcher 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!

  • sed eignet sich hervorragend zum zeilenweisen Filtern und Ersetzen von Text und verwendet Regex für leistungsstarken Mustervergleich und Ersetzungen.
  • awk bietet einen programmatischeren Ansatz: Mit Regex können Sie Datensätze filtern, innerhalb bestimmter Felder suchen und mithilfe von Funktionen wie match(), substr(), sub() und gsub() 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

  1. Einführung in reguläre Ausdrücke (Regex)
  2. Fortgeschrittene Suche mit Grep und Regex
  3. Regex mit sed/awk kombinieren
  4. Capture Groups, Backreferences und Substitution
← Zurück zu DevOps Bootcamp