sed und awk ohne Geheimnisse

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.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Ermittlern gelingt weiterer Schlag gegen Ransomware-Gruppe LockBit

Sie decken die Identität des Kopfs der Gruppe auf. Britische Behörden fahnden mit einem Foto…

2 Stunden ago

Apple stellt neuen Mobilprozessor M4 vor

Er treibt das neue iPad Pro mit OLED-Display an. Apple verspricht eine deutliche Leistungssteigerung gegenüber…

16 Stunden ago

Cyberabwehr: Mindestens zwei kritische Vorfälle pro Tag

Davon entfällt ein Viertel auf staatliche Einrichtungen und 12 Prozent auf Industrieunternehmen.

17 Stunden ago

Tunnelvision: Exploit umgeht VPN-Verschlüsselung

Forscher umgehen die Verschlüsselung und erhalten Zugriff auf VPN-Datenverkehr im Klartext. Für ihren Angriff benötigen…

17 Stunden ago

Online-Banking: 42 Prozent kehren Filialen den Rücken

Weitere 40 Prozent der Deutschen erledigen ihre Geldgeschäfte überwiegend online und gehen nur noch selten…

19 Stunden ago

Google veröffentlicht neues Sicherheitsupdate für Chrome

Zwei Schwachstellen in Chrome gehören nun der Vergangenheit an. Von ihnen geht ein hohes Risiko…

23 Stunden ago