sed und awk ohne Geheimnisse

Wer oft mit regulären Ausdrücken arbeitet, sollte sich mit zwei nützlichen UNIX-Tools für die Textbearbeitung vertraut machen: sed und awk.

Die Benutzung beider Programme ist leicht zu erlernen, und sie sind hervorragend für die Mustererkennung geeignet. sed ist ein Stream-Editor – seinen Namen erhielt das Programm vom Befehl simple ed. awk ist eine Programmiersprache, die nach ihren Entwicklern (Aho, Weinberger und Kernighan) benannt wurde. In diesem Artikel werden die grundlegenden Funktionen von sed und awk beschrieben. Fortgeschrittenere Anwendungen folgen in späteren Artikeln.

sed und awk sind beide gut geeignet, monotone Aufgaben der Textbearbeitung zu automatisieren, die man normalerweise interaktiv mit einem Text-Editor durchführen würde. Sie sind Stream-orientiert, d.h. sie übernehmen Eingaben aus Textdateien – zeilenweise – und erzeugen Standardausgaben.

sed findet vor allem für die wiederholte Bearbeitung einer oder mehrerer Dateien Verwendung. awk kann als Programmiersprache benutzt werden, um strukturierte Daten zu bearbeiten und daraus formatierte Berichte zu erstellen. sed und awk werden wie Shellskripte ausgeführt; die Ausführung der Anweisungen geschieht der Reihe nach. Man nutzt sed-Skripte in der Regel für einfache Aufgaben, z.B. für die Gewährleistung einer konsistenten Schreibweise von Elementen wie dem Namen einer Methode innerhalb eines Dokuments oder einer Reihe von Dokumenten. awk ist eher für komplexere Aufgaben geeignet, z.B. für die Neuformatierung von Daten oder das Erstellen von individuellen Berichten.

awk ist eine vollständige Programmiersprache und beschränkt sich nicht auf die Funktionen eines Text-Editors wie sed. awk ist vorzüglich geeignet, um nutzbringende Berichte aus Log-Dateien oder Daten einer Text-basierten Datenbank zu erstellen. Damit awk mit den Daten etwas anfangen kann, müssen diese allerdings strukturiert sein, denn davon geht awk aus.

Übliche Verwendungen von sed:

  • Verdoppeln/Verdreifachen der Leerzeichen in einer Datei
  • Umwandlung von DOS/UNIX-Zeilenumbrüchen
  • Entfernen von Leerzeichen am Zeilenanfang oder -ende
  • Ersetzungen in allen/ausgewählten Zeilen
  • Löschen von aufeinander folgenden Leerzeilen
  • Löschen von Leerzeilen am Anfang/Ende einer Datei

Übliche Verwendungen von awk:

  • Verwaltung kleiner individueller Datenbanken
  • Erstellung von Berichten
  • Validierung von Daten
  • Erstellung von Indices sowie weitere Aufgaben zur Dokumentenaufbereitung
  • Experimentieren mit Algorithmen, die später auf andere Programmiersprachen übertragen werden können
  • Verarbeitung der Ergebnisse von UNIX-Befehlen
  • Elegantere Verarbeitung von Kommandozeilen-Argumenten

sed und awk verwenden eine ähnliche Syntax, was die Einarbeitung erleichtert. sed-Anweisungen bestehen aus Ausdrücken zur Bearbeitung von Zeilen, während awk-Anweisungen aus Programmier-Ausdrücken und Funktionen bestehen.

Dabei kommen reguläre Ausdrücke ausgiebig zur Anwendung – es empfiehlt sich also, für einige Hintergrundinformationen zu regulären Ausdrücken einmal einen Blick auf den Artikel „Demystifying the syntax of regular expressions“ zu werfen.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu sed und awk ohne Geheimnisse

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *