Suchen und Ersetzen

Neben dem Auffinden von Zeichenketten unterstützen reguläre Ausdrücke auch das Ersetzen sowie Translationen, also buchstabenweise Ersetzungen.

Eine Aufgabe von Autoren redaktioneller Beiträge besteht darin, auf eine einheitliche Schreibweise von Begriffen und Abkürzungen zu achten. Per Hand verursacht das einigen Aufwand, komfortabler funktionierte es per Regex. Um etwa alle Vorkommnisse des Begriffes Wifi durch WLAN zu ersetzen, reicht folgende Zeile in Perl:

$string =~ s/Wifi/WLAN/g;

Mit dem Kommando sed wenden Sie die Ersetzung komfortabel auf eine komplette Datei an:

$ sed --quiet "s/Wifi/WLAN/g; w kopie.txt" original.txt

Die Option --quiet unterdrückt dabei Ausgaben auf der Standardausgabe. Der zweite Parameter enthält durch ein Semikolon getrennte Kommandos an Sed. Beim ersten davon handelt es sich um einen regulären Ausdruck zur Textersetzung. Dabei steht das das Kürzel g am Ende des Regex für "global" und sorgt für eine Ersetzung aller Suchtreffer (Wifi), die in der Datei original.txt vorkommen. Den korrigierten Text speichert Sed anschließend mittels des zweiten Kommandos (w für "write") in der Datei kopie.txt, das Originaldokument bleibt unverändert.

Translationen gelingen in Perl mit tr anstelle von s. Um beispielsweise alle Kleinbuchstaben durch Großbuchstaben zu ersetzen, genügt folgender Aufruf:

$string =~ tr/[a-z]/[A-Z]/;

Bei Sed heißt das entsprechende Kommando y und kann nicht nur einzelne Buchstaben, sondern auch ganze Zeichenketten gleicher Länge ersetzen.

Fazit

Reguläre Ausdrücke helfen dabei, komplizierte Aufgaben bei der Verarbeitung von Zeichensequenzen wesentlich zu vereinfachen. Mit vergleichsweise wenig Aufwand lassen sich eine Textsuche und Ersetzung realisieren. Ein tieferes Verständnis dieser Materie vermittelt das als Standardwerk zum Thema geltende "Mastering Regular Expressions" von Jeffrey E.F. Friedl [6]. Daneben eignet sich "Sed und Awk" von Dale Dougherty und Arnold Robbins [7] als weiterer, höchst informativer Lesestoff. 

Glossar

POSIX

Portable Operating System Interface for Unix (DIN/EN/ISO/IEC 9945, [8]). Eine von der IEEE definierte Familie von Interoperabilitätsstandards für Application Programming Interfaces (APIs) und Software-Tools. POSIX ist prinzipiell nicht auf unixoide Systemen beschränkt; so unterstützt beispielsweise auch die Windows-NT-Systemfamilie POSIX bis zu einem gewissen Grad.

ICANN

Internet Corporation for Assigned Names and Numbers. Die 1998 gegründete Organisation entscheidet unter anderem über die Grundlagen der Verwaltung der Top-Level-Domains (.com, .net, .org, .de, …) im Internet [9].

Infos

[1] Häufigste Nachnamen in Deutschland: http://de.wikipedia.org/wiki/Liste_der_häufigsten_Familiennamen_in_Deutschland

[2] "Python Regular Expression HOWTO": http://docs.python.org/howto/regex.html

[3] Modul re (Python): http://docs.python.org/library/re.html

[4] "Perl Regular Expressions": http://www.troubleshooters.com/codecorn/littperl/perlreg.htm

[5] "How to Find or Validate an Email Address": http://www.regular-expressions.info

[6] Regex von A bis Z: Jeffrey E.F. Friedl, "Mastering Regular Expressions", O'Reilly 1996, ISBN 978-0596528126

[7] Regex in Sed und Awk: Dale Dougherty und Arnold Robbins, "Sed und Awk", O'Reilly 1997, ISBN 1-56592-225-5

[8] POSIX-Standard: http://standards.ieee.org/develop/wg/POSIX.html

[9] ICANN: http://www.icann.org/en/tlds/

Der Autor

Frank Hofmann hat Informatik an der TU Chemnitz studiert. Derzeit arbeitet er in Berlin im Open-Source-Expertennetzwerk Büro 2.0 als Dienstleister mit Spezialisierung auf Druck und Satz. Er gehört zur Linux User Group Potsdam (upLUG).

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Einfaches Erstellen von regulären Ausdrücken
    Wo reguläre Ausdrücke für den Profi ein Denksport sind, steht der Anfänger verzweifelt vor einem Dickicht an Kürzeln und Zeichen. Für den Durchblick sorgt der Editor txt2regex.
  • Zu Befehl
    Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen – wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, wo es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.
  • Teil 3: String-Verarbeitung und Reguläre Ausdrücke
    Die Grundlagen der Zeichenketten haben wir in der letzten Ausgabe gelegt. Diesmal wollen wir uns aber nicht mit einfachen Leer-Tests oder Längenanzeigen begnügen, sondern unsere Strings kräftig durcheinander wirbeln.
  • Suchen und Finden mit Regulären Ausdrücken
    Zum wichtigsten Handwerkszeug bei der Suche in Texten und auf der Festplatte zählen Regular Expressions. Trotz ihrer scheinbar komplexen Struktur lassen sie sich schnell meistern.
  • Zu Befehl: Suchen mit grep, egrep, fgrep, (b)zgrep
    Für die Suche nach Wörtern und Ausdrücken in Textdateien bieten sich die Kommandos der grep-Familie an. Als Ergebnis zeigen sie wahlweise die gefundenen Zeilen, die Namen der Dateien, in denen das Suchmuster vorkommt, oder die Anzahl der Treffer an.
Kommentare

Infos zur Publikation

LU 01/2015: E-Books im Griff

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

PCLinuxOS Version 2014.08 "FullMonty" Umstellung auf deutsch
Karl-Heinz Welz, 19.12.2014 09:55, 3 Antworten
Hallo, liebe Community, ich bin 63 Jahre alt und möchte jetzt nach Jahrzehnten Windows zu Linux...
ICEauthority
Thomas Mann, 17.12.2014 14:49, 2 Antworten
Fehlermeldung beim Start von Linux Mint: Could not update ICEauthority file / home/user/.ICEauth...
Linux einrichten
Sigrid Bölke, 10.12.2014 10:46, 5 Antworten
Hallo, liebe Community, bin hier ganz neu,also entschuldigt,wenn ich hier falsch bin. Mein Prob...
Externe USB-Festplatte mit Ext4 formatiert, USB-Stick wird nicht mehr eingebunden
Wimpy *, 02.12.2014 16:31, 0 Antworten
Hallo, ich habe die externe USB-FP, die nur für Daten-Backup benutzt wird, mit dem YaST-Partition...
Steuern mit Linux
Siegfried Markner, 01.12.2014 11:56, 2 Antworten
Welches Linux eignet sich am besten für Steuerungen.