eMail und die Detektive

Volkers Editorial

01.03.2002
Lange her und schon fast vergessen sind die Hilfsmittel, mit denen die ersten E-Mails verschickt wurden. Bei der damaligen Technik musste noch viel "zu Fuß" gemacht werden. Heute haben wir es - Linux sei Dank - viel einfacher. Doch ein Blick zurück lehrt uns, sich an die eine oder andere Schraube zu erinnern, an der damals noch von Hand gedreht wurde…

Schon fast etwas nostalgisch blicke ich auf meine erste Internet-Erfahrung zurück: Das war an einem Text-Terminal (an Grafik war gar nicht zu denken) an einer HP-UX-Maschine, und eine E-Mail verschickte man damals nur mit:

mail adressat@maschine < nachrichten-datei

Dabei wurde nachrichten-datei natürlich vorher mit dem vi-Editor erstellt - nur die Profis arbeiteten damals mit emacs - durften sie aber nicht immer, denn emacs verballerte etwa ein Zehntel des Hauptspeichers unseres Zentralrechners, und nicht selten geriet man aneinander, weil jemand mit seinem emacs 2 MB Hauptspeicher wegfraß. Ich war jedenfalls stolz wie Oscar, als ich die ersten Mails mit einem alten Schulfreund in Amerika wechselte. In dieser frühen Zeit war das mit das schnellste Mittel mitzuteilen, wie die Spiele in der Bundesliga ausgegangen waren. Auch eine der schönen Sachen war die Möglichkeit, mit talk persönliche Kontakte in die ganze Welt aufrecht zu erhalten. Ich habe eine Bekannte in Ecuador, und wenn Ecuador mal gerade nicht wieder im Krieg mit Peru lag [1], konnte ich mich mit dem talk-Kommando sehr gut mit ihr unterhalten. Angesichts der heutigen Möglichkeiten mit Chaträumen, IRC [3] etc. schon fast lächerlich - aber so war es nun einmal. So sparte man sich die damals noch ungeheuerlichen Telefonkosten für Überseegespräche. Etwas nervig waren nur die unterschiedlichen Realitäten der verschiedenen Zeitzonen mit einem Unterschied von unzähligen Stunden: Da war der andere noch nicht ganz aus den Federn, während ich schon längst an Feierabend dachte… Das ist wie Vergangenheit und Zukunft gleichzeitig - nur anstrengender.

Zeilenumbrüche

Ebenso gab es damals auch schon die unterschiedlichsten Maschinen, die alle die unterschiedlichsten Standards verwendeten. So hatte ich oft Mails, in denen jegliche Zeilenumbrüche fehlten. Das konnte beim Lesen schon sehr nervig sein, denn so ein Textbildschirm kippte nach 80 Zeichen einfach in die nächste Zeile - sehr zur Freude der Wörter, die mittendrin zerschnitten wurden und etliche Zentimeter weiter links weitergingen - oder (je nach Einstellung) nach dem Ende der Zeile wurde der Rest erst gar nicht mehr angezeigt.

Die Rettung für solche Schlangen-eMails war damals das Kommandopaar expand und fold: Mit expand ließen sich die lästigen Tabulatoren in Leerzeichen umwandeln, und mit dem fold-Kommando bekam man schließlich auch die Zeilenumbrüche auf eine Art und Weise hin, bei der die Wörter keinen so großen Schaden nehmen. Doch schauen wir uns zuerst expand an:

Das Dumme an den Tabulatoren ist, dass so ziemlich jeder seine eigene Einstellung dafür bevorzugt. Manche haben einen Abstand von acht Zeichen, manche nur zwei; jeder macht das halt anders. Die Datei text_mit_tab.txt enthalte z. B. zwischen jedem Wort einen Tabulator.

Datei text_mit_tab.txt

In[Tab]diesem[Tab]Text[Tab]erscheinen[Tab]viele[Tab]Tabulatoren.

Um diese Tabulatoren auszumerzen, bedarf es nur eines einfachen

expand text_mit_tab.txt > text_ohne_tab.txt

Wenn man sich diese ansieht, scheint man nichts gewonnen zu haben:

text_mit_tab.txt nach Anwendung von

expand
In      diesem  Text    erscheinen      viele   Tabulatoren.

Doch hier hilft ein weiteres Kommando: Der sed-Befehl kann nämlich auf einfache Art und Weise n-fache Leerzeichen in einzelne verwandeln. Der folgende Aufruf wird genutzt, um dreimal hintereinander (deshalb das Tripel desselben Teil s/ / /g getrennt durch Semikoli) ein doppeltes Leerzeichen in ein einfaches zu wandeln. So macht man aus acht vier, aus vier zwei und aus den restlichen zwei eines:

sed "s/  / /g;s/  / /g;s/  / /g" text_ohne_tab.txt > text.txt

Wem die Funktionsweise noch nicht ganz klar ist, der sollte erstmal

sed "s/  / /g" text_ohne_tab.txt > text.txt

probieren. Dann wird an der Ausgabe klar, dass ein einfaches Benutzen von s/ / /g nicht reicht, denn es wird nur die Anzahl von aufeinander folgenden Leerzeichen halbiert aber nicht auf ein einfaches Leerzeichen gebracht.

text.txt mit ein- und dreifachem

s/ / /g

im

sed
In   diesem Text  erscheinen   viele  Tabulatoren.
In diesem Text erscheinen viele Tabulatoren.

Sauberes Abschneiden

Danach können wir unsere Datei nun mit sauberen Zeilenumbrüchen versehen. An unserer Beispieldatei seien das mal nur 20 Zeichen, damit man etwas sieht. Die einfache Anwendung des fold-Kommandos für 20 Zeichen sieht so aus:

fold -20 text.txt

Das sieht nun eher wie eine missglückte Quadratur des Kreises aber nicht wie eine gelungene Formatierung aus:

$ fold -20 text.txt
In diesem Text ersch
einen viele Tabulato
ren.

Erst die Benutzung der Option -s sorgt dafür, dass das fold-Kommando nicht versucht ist, mitten im Wort umzubrechen, sondern statt beim 20. Zeichen beim letzten Leerzeichen davor.

$ fold -20 -s text.txt
In diesem Text
erscheinen viele
Tabulatoren.

Und das Ganze gibt es dann auch noch als Einzeiler, wodurch die lästigen Zwischendateien entfallen:

$ expand tabtext.txt | sed "s/ / /g;s/ / /g;s/ / /g" | fold -s -20
In diesem Text
erscheinen viele
Tabulatoren.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Fortgeschrittenes Arbeiten mit dem Editor Vim
    Mit wenigen Handgriffen wird aus dem vermeintlich kryptischen Editor Vim ein komfortables und flexibles Werkzeug zur Bearbeitung von Texten.
  • Mehr Komfort
    Von einfachen Abfragen bis hin zu komplexen Menüs: Mit dem Toolkit Dialog bauen Sie eine grafische Oberfläche für Shell-Skripte, die oft nicht mehr als eine zusätzliche Zeile brauchen.
  • Latex-Editor mit Tabs und Folding

    Texmaker, ein Editor für den Textsatz mit Latex, ist in Version 2.3 mit neuen Features erhältlich.
  • Teil 7: Benutzerfreundliche Ein-/Ausgabe
    Im letzten Teil des Bash-Programmierkurses geht es um die benutzerfreundliche Gestaltung von Eingaben und Dialogen am Beispiel der Programme dialog, gdialog und kdialog.
  • Portabel programmieren mit Dialog, Gdialog und Kdialog
    Bash-Skripte sind meist nur für die Verwendung auf der Kommandozeile gedacht und schrecken Nicht-Experten mit unübersichtlichen Ausgaben ab. Das muss aber nicht so sein: Die Programme Dialog, Gdialog und Kdialog verstecken die Kommandozeile vollständig vor dem Benutzer.
Kommentare

Infos zur Publikation

LU 11/2014: VIDEOS BEARBEITEN

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

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

WLAN-Signalqualität vom Treiber abhängig
GoaSkin , 29.10.2014 14:16, 0 Antworten
Hallo, für einen WLAN-Stick mit Ralink 2870 Chipsatz gibt es einen Treiber von Ralink sowie (m...
Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 6 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...