Beispieldaten

Für erste Übungen nutzen Sie die in Listing 3 dargestellte Telefonliste. Speichern Sie den Inhalt dieser Tabelle in textdatei.txt ab. Die Tabelle sieht bewusst etwas wüst und zusammengeflickt aus: Leerzeilen, Rechtschreibfehler und andere Makel verunzieren sie. Mit Sed lassen sich diese Fehler jedoch leicht korrigieren – eine große Arbeitserleichterung, besonders dann, wenn es eine Datenbank mit mehreren Tausend Einträgen zu pflegen gilt. Die zweite Spielwiese in Listing 4 beinhaltet eine Liste mit grob unterschiedlich geschriebene Datumsangaben. Auch diese normiert Sed im Handumdrehen. Speichern Sie den Inhalt für den weiteren Gebrauch unter testliste.txt ab.

Listing 3

johann johannson  0885465468798746
Klaus Schraube  08755466584
Hans Michael  0987654321
Jochen Hansen  0405458765143321
Gabi Gans Meier   0548/9988776655

Listing 4

22 April 1984
 7.04.1985
30 März 1986
19 April 1987
03.04.1988
26 März 1989
15 April 1990
31-März-1991
19 April 1992
11 April 1993
 3 April 1994
16. April 1995
 7 April 1996
30 März 1997
12 April 1998

Reguläre Ausdrücke

Beim Ausführen von Sed-Befehlen kommen sehr oft reguläre Ausdrücke zum Einsatz, um Zeichenausdrücke aus dem Text herauszufiltern. Selbst wenn Sie den Ausdruck bisher noch nicht kennen, kennen Sie höchstwahrscheinlich reguläre Ausdrücke schon und nutzen sie regelmäßig: Wildcards wie in ls *.txt entsprechen einem regulären Ausdruck, und Texteditoren bieten über die Suchen-und-Ersetzen-Funktion oft eine Implementation für reguläre Ausdrücke.

In der Regel machen reguläre Ausdrücke jedoch deutlich mehr Arbeit. Mit ein wenig Logik bekommen Sie einfachere Ausdrücke allerdings gut in den Griff. Eine einfache Anweisung lautet zum Beispiel [ABC], sie prüft ob der String auf A, B oder C lautet. Das Konstrukt /ABC/ filtert hingegen auf den zusammenhängenden Begriff "ABC". Den Aufbau und den Gebrauch regulärer Ausdrücke vollständig zu erklären, würde den Umfang dieses Artikels sprengen, daher finden Sie auf der beiliegenden Heft-DVD einen Artikel zu ersten Schritten mit Regular Expressions aus LinuxUser 06/2015 [2].

Zu so viel Macht reguläre Ausrücke Sed auch verhelfen, so unübersichtlich wachsen die Anweisungen komplexer Aufgaben. Hier hilft oft der Einsatz von Sed-Skripten, die die Aufgabe in mehrere Teile aufspalten. Einige Zeichen innerhalb der Konstrukte gelten zudem sowohl als Sonderzeichen der Shell als auch als Anweisungen für die regulären Ausdrücke. Sie müssen diese deshalb mit dem Zeichen \ für die Shell entwerten oder auf neuhochdeutsch "escapen" (siehe Tabelle "Sonderzeichen").

Sonderzeichen

Zeichen Hinweis Sed-Funktionalität
( öffnet eine Anweisung
) schließt die Anweisung
{ öffnet optionale Anweisung
} schließt optionale Anweisung
[ öffnet Klassenbeschreibung von Zeichen
] schließt Klassenbeschreibung von Zeichen
" maskiert Anweisung und löst Shell-Variable auf
' maskiert eine Anweisung, löst Shell-Variable nicht auf
` schließt Anweisungsblock ein
. ein beliebiges Zeichen außer Zeilenvorschub
, trennt Parameter, etwa Zeilenangaben
Leerzeichen Setzt Markierung (t- und b-Befehl)
$ Dokumentenende, letzte Zeile oder Zeilenende
& Platzhalter für Suchmuster, welches in der Ersetzen-Anweisung mit ausgegeben wird
| oder (Abtrennen von regulären Ausdrücken)
/ Trennzeichen in Editierkommandos
^ Anfang der Zeile, aber: [^Begriff] = Negierung
\ Entwerter
! nach Zeilenzahl: nicht diese Zeile ausgeben
* nie oder beliebig oft
+ Muster mindestens einmal vorhanden
= Ausgabe der Zeilennummer
\n neue Zeile, Zeilenvorschub
\t Tabulator

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 8 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Die Kraft der Muschel
    Microsofts neue PowerShell greift auf die Bibliotheken des .NET-Frameworks zurück und verfügt so über einen riesiger Fundus von Funktionen und Objekten. Ist sie dadurch einer traditionellen Shell wie der Bash überlegen?
  • Mit Bordmitteln riesige Textdatei durchsuchen
  • Handarbeit
    Die meisten Nutzer drucken Dokumente aus einer Anwendung mit grafischer Oberfläche heraus. In einigen Situationen erweist es sich aber als sinnvoller, den Printserver Cups per Kommandozeile zu bedienen.
  • Hardcore Linux
    Dieser Teil der Serie über die Bash stellt die Grundlagen für die Arbeit mit mehreren und verketteten Befehlen auf der Bash zusammen.
  • Sauber verzahnt
    Verbinden, trennen, umformatieren: Unter Linux gibt es zahlreiche kleine Helfer, die die Arbeit mit Textdateien perfekt beherrschen – und die dazu noch perfekt zusammenarbeiten.
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

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

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

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

Stellenmarkt

Aktuelle Fragen

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...