Kapitel 11. Datenumwandlung

Inhaltsverzeichnis

11.1. Werkzeuge für Textumwandlung
11.1.1. Konvertieren einer Textdatei mit iconv
11.1.2. Prüfen mit iconv, ob eine Datei UTF-8-kodiert ist
11.1.3. Dateinamen konvertieren mit iconv
11.1.4. EOL-Konvertierung
11.1.5. TAB-Konvertierung
11.1.6. Editoren mit automatischer Konvertierung
11.1.7. Extrahieren von reinem Text
11.1.8. Hervorheben und Formatieren von reinen Textdaten
11.2. XML-Daten
11.2.1. Grundlegende Hinweise für XML
11.2.2. XML-Verarbeitung
11.2.3. Die XML-Daten-Extrahierung
11.3. Textsatz
11.3.1. roff-Textsatz
11.3.2. TeX/LaTeX
11.3.3. Schöner Ausdruck einer Handbuchseite
11.3.4. Erstellen einer Handbuchseite
11.4. Druckfähige Daten
11.4.1. Ghostscript
11.4.2. Zwei PS- oder PDF-Dateien zusammenführen
11.4.3. Werkzeuge für druckfähige Daten
11.4.4. Drucken mit CUPS
11.5. Konvertierung von Mail-Daten
11.5.1. Grundlagen zu Mail-Daten
11.6. Werkzeuge für Grafikdaten
11.7. Verschiedene Datenkonvertierungen

Hier werden Werkzeuge und Tipps für die Umwandlung von Dateien in andere Formate im Debian-System beschrieben.

Bei Werkzeugen für auf Standards basierende Formate ist die Situation sehr gut, aber bei proprietären Formaten sind die Möglichkeiten eingeschränkt.

Folgende Pakete für die Textumwandlung sind mir aufgefallen:


[Tipp] Tipp

iconv(1) ist Teil des libc6-Pakets und immer auf nahezu allen Unix-artigen Systemen zur Änderung der Zeichenkodierung verfügbar.

Sie können die Kodierung einer Textdatei mit iconv(1) wie folgt ändern:

$ iconv -f kodierung1 -t kodierung2 input.txt >output.txt

Bei den Werten für die Kodierung ist die Groß-/Kleinschreibung nicht relevant, "-" und "_" werden ignoriert. Mit "iconv -l" können Sie überprüfen, welche Kodierungen unterstützt werden.

Tabelle 11.2. Liste von Werten für die Zeichenkodierung und deren Verwendung

Wert für Zeichenkodierung Verwendung
ASCII American Standard Code for Information Interchange, 7-Bit-Code ohne akzentuierte Zeichen
UTF-8 aktueller multilingualer Standard für alle modernen Betriebssysteme
ISO-8859-1 alter Standard für westeuropäische Sprachen; ASCII + akzentuierte Zeichen
ISO-8859-2 alter Standard für osteuropäische Sprachen; ASCII + akzentuierte Zeichen
ISO-8859-15 alter Standard für westeuropäische Sprachen; ISO-8859-1 + Euro-Zeichen
CP850 Codepage 850, Microsoft-DOS-Zeichen mit Grafiken für westeuropäische Sprachen, Variante von ISO-8859-1
CP932 Codepage 932, Microsoft-Windows-artige Shift-JIS-Variante für Japanisch
CP936 Codepage 936, Microsoft-Windows-artige GB2312-, GBK- oder GB18030-Variante für vereinfachtes Chinesisch
CP949 Codepage 949, Microsoft-Windows-artige EUC-KR- oder Unified-Hangul-Code-Variante für Koreanisch
CP950 Codepage 950, Microsoft-Windows-artige Big5-Variante für traditionelles Chinesisch
CP1251 Codepage 1251, Microsoft-Windows-artige Kodierung für das kyrillische Alphabet
CP1252 Codepage 1252, Microsoft-Windows-artige ISO-8859-15-Variante für westeuropäische Sprachen
KOI8-R alter russischer UNIX-Standard für das kyrillische Alphabet
ISO-2022-JP Standard-Kodierung für japanische E-Mails, die nur 7-Bit-Codes verwenden
eucJP alter japanischer UNIX-Standard-Code (8-Bit), völlig verschieden von Shift-JIS
Shift-JIS Standard für Japanisch gemäß JIS X 0208 Anhang 1 (siehe auch CP932)

[Anmerkung] Anmerkung

Einige Kodierungen werden nur für die Datenkonvertierung unterstützt und nicht als Wert für das Gebietsschema (Locale) (Abschnitt 8.3.1, „Grundlagen der Kodierung“).

Bei Zeichensätzen, die nur ein einziges Byte benötigen (wie ASCII und ISO-8859), bedeutet die Zeichenkodierung nahezu das gleiche wie der Zeichensatz.

Bei Zeichensätzen mit vielen Zeichen (wie JIS X 0213 für Japanisch oder Universal Character Set (UCS, Unicode, ISO-10646-1) für praktisch alle Sprachen) gibt es viele Kodierungsschemata, die in die Sequenz der Byte-Daten eingepasst werden:

Bei diesen gibt es klare Differenzierungen zwischen dem Zeichensatz und der Zeichenkodierung.

Die Codepage wird als Synonym für einige hersteller-spezifische Zeichenkodierungstabellen verwendet.

[Anmerkung] Anmerkung

Bitte beachten Sie, dass die meisten Kodierungssysteme sich bei den 7-Bit-Zeichen identischen Code mit ASCII teilen, aber es gibt einige Ausnahmen. Wenn Sie alte japanische C-Programme und URLs von dem salopp Shift-JIS genannten Kodierungsformat nach UTF-8 konvertieren, verwenden Sie "CP932" als Kodierungsname statt "shift-JIS", um die erwarteten Resultate zu bekommen: 0x5C → "\" und 0x7E → "~". Andernfalls werden diese in falsche Zeichen konvertiert.

[Tipp] Tipp

recode(1) kann ebenfalls verwendet werden und bietet mehr als die kombinierte Funktionalität von iconv(1), fromdos(1), todos(1), frommac(1) und tomac(1). Weitere Informationen finden Sie unter "info recode".

Hier ein Beispielskript, um die Dateinamenkodierung von einer auf einem älteren Betriebssystem erzeugten in die moderne UTF-8-Kodierung zu konvertieren (für alle Dateien in einem Verzeichnis):

#!/bin/sh
ENCDN=iso-8859-1
for x in *;
 do
 mv "$x" "$(echo "$x" | iconv -f $ENCDN -t utf-8)"
done

Die "$ENCDN"-Variable gibt die Original-Kodierung (gemäß Tabelle 11.2, „Liste von Werten für die Zeichenkodierung und deren Verwendung“) an, die für die Dateinamen in dem älteren Betriebssystem verwendet wurde.

In komplizierteren Fällen binden Sie bitte ein Dateisystem (z.B. eine Partition auf einem Festplattenlaufwerk), das solche Dateinamen enthält, mit korrekter Angabe der Dateinamenkodierung als Option zum mount(8)-Befehl ein (lesen Sie dazu Abschnitt 8.3.6, „Dateinamenkodierung“), und kopieren Sie mit "cp -a" den vollständigen Inhalt der Partition in ein anderes Dateisystem, das als UTF-8 eingebunden ist.

Moderne Editoren wie vim sind sehr clever und können mit jeglichen Kodierungssystemen und Dateiformaten umgehen. Für beste Kompatibilität sollten Sie diese Editoren mit einem UTF-8-Gebietsschema in einer UTF-8-tauglichen Konsole verwenden.

Eine alte westeuropäische Unix-Textdatei "u-datei.txt", gespeichert in der alten latin1-Kodierung (ISO-8859-1), kann mit vim einfach wie folgt bearbeitet werden:

$ vim u-datei.txt

Dies ist möglich, da die automatische Erkennung der Dateikodierung in vim zunächst von einer UTF-8-Kodierung ausgeht und, falls dies fehlschlägt, latin1 verwendet.

Eine alte polnische Unix-Textdatei "pu-datei.txt", gespeichert in der alten latin2-Kodierung (ISO-8859-2), kann mit vim wie folgt bearbeitet werden:

$ vim '+e ++enc=latin2 pu-datei.txt'

Eine alte japanische Unix-Textdatei "ju-datei.txt", gespeichert in der eucJP-Kodierung, kann mit vim wie folgt bearbeitet werden:

$ vim '+e ++enc=eucJP ju-datei.txt'

Eine alte japanische MS-Windows-Textdatei "jw-datei.txt", gespeichert in der sogenannten Shift-JIS-Kodierung (präziser: CP932), kann mit vim wie folgt bearbeitet werden:

$ vim '+e ++enc=CP932 ++ff=dos jw-datei.txt'

Wenn eine Datei mit den Optionen "++enc" und "++ff" geöffnet wird, speichert ":w" in der Vim-Befehlszeile sie im Originalformat ab und überschreibt die Originaldatei. Sie können auch das zum Speichern zu nutzende Format und den Dateinamen mit angeben, z.B. ":w ++enc=utf8 neu.txt".

Bitte lesen Sie den Abschnitt zum mbyte.txt "multi-byte text support" in der vim-Online-Hilfe sowie Tabelle 11.2, „Liste von Werten für die Zeichenkodierung und deren Verwendung“ für Infos, welche lokalen Werte mit der "++enc"-Option genutzt werden können.

Die emacs-Programmfamilie bietet ähnliche Funktionalitäten.

Folgender Befehl liest eine Webseite in eine Textdatei ein. Das ist sehr nützlich, wenn Sie Konfigurationsbeispiele aus dem Web kopieren oder grundlegende Unix-Textbearbeitungswerkzeuge wie grep(1) auf den Inhalt der Webseite anwenden möchten.

$ w3m -dump http://www.remote-site.com/help-info.html >textdatei

Ähnlich dazu können Sie reine Textdaten wie folgt aus anderen Formaten extrahieren:


Reine Textdaten können mit folgenden Befehlen hervorgehoben und formatiert werden:

Tabelle 11.6. Liste von Werkzeugen für Hervorhebung/Formatierung von Textdaten

Paket Popcon Größe Schlüsselwort Beschreibung
vim-runtime V:25, I:419 25520 Hervorheben Vim-Macro zur Konvertierung von Quellcode in HTML (mit ":source $VIMRUNTIME/syntax/html.vim")
cxref V:0, I:1 1172 c → html Konvertierung eines C-Programms nach Latex und HTML (C-Sprache)
src2tex V:0, I:1 1968 Hervorheben Konvertierung von vielen Quellcode-Formaten nach TeX (C-Sprache)
source-highlight V:1, I:9 1976 Hervorheben Konvertierung von vielen Quellcode-Formaten nach HTML, XHTML, LaTeX, Texinfo, ANSI-Color-Escape-Sequenzen und DocBook-Dateien mit Hervorhebung (C++)
highlight V:2, I:18 1025 Hervorheben Konvertierung von vielen Quellcode-Formaten nach HTML, XHTML, RTF, LaTeX, TeX oder XSL-FO-Dateien mit Hervorhebung (C++)
grc V:0, I:1 53 text → color grundlegender Einfärber für alles (Python)
txt2html V:0, I:4 296 text → html Text-nach-HTML-Konvertierer (Perl)
markdown V:0, I:6 96 text → html markdown: Textdokument-Konvertierer in (X)HTML (Perl)
asciidoc V:1, I:13 2442 text → any AsciiDoc: Textdokument-Konvertierer in XML/HTML (Python)
pandoc V:2, I:13 37308 text → any grundlegender Markup-Konvertierer (Haskell)
python-docutils V:4, I:144 1570 text → any reStructuredText-Dokument-Formatierer nach XML (Python)
txt2tags V:0, I:2 951 text → any Dokumentenkonvertierer von Text nach HTML, SGML, LaTeX, manpage (Handbuchseite), MoinMoin, Magic Point und PageMaker (Python)
udo V:0, I:0 556 text → any universelles Dokumentenverarbeitungs-Werkzeug (C-Sprache)
stx2any V:0, I:0 484 text → any Dokumentenkonvertierer von Structured Text in andere Formate (m4)
rest2web V:0, I:0 576 text → html Dokumentenkonvertierer von ReStructured Text nach HTML (Python)
aft V:0, I:0 259 text → any "Freiform"-Dokumenten-Vorbereitungssystem (Perl)
yodl V:0, I:0 421 text → any Vor-Dokument-Sprache und Werkzeuge für deren Verarbeitung (C-Sprache)
sdf V:0, I:0 1415 text → any einfacher Dokumentenanalysator (Perl)
sisu V:0, I:0 7737 text → any Rahmenwerk für Dokumentenstrukturierung, -veröffentlichung und -suche (Ruby)

The Extensible Markup Language (XML) ist eine Markup-Sprache für Dokumente mit Strukturinformation.

Einführende Informationen finden Sie (in Englisch) unter XML.COM:

Ein XML-Text sieht ein wenig wie HTML aus. XML ermöglicht es uns, verschiedene Ausgabeformate für ein einziges Dokument zu verwalten. Ein einfaches XML-System ist das docbook-xsl-Paket, das auch für dieses Dokument verwendet wird.

Jede XML-Datei beginnt mit einer Standard-XML-Deklaration wie der folgenden:

<?xml version="1.0" encoding="UTF-8"?>

Die grundlegende Syntax für ein XML-Element ist wie folgt gekennzeichnet:

<name attribute="Wert">Inhalt</name>

Die Kurzform für ein XML-Element mit leerem Inhalt ist wie folgt:

<name attribute="Wert"/>

Das "attribute="Wert"" in obigen Beispielen ist optional.

Ein Kommentar-Abschnitt wird in XML wie folgt gekennzeichnet:

<!-- Kommentar -->

Anders als beim Hinzufügen von Markierungen (Markups) erfordert XML minimale Konvertierungen am Inhalt, um vordefinierte Entitäten für die folgenden Zeichen zu nutzen.


[Achtung] Achtung

"<" oder "&" können nicht in Attributen oder Elementen verwendet werden.

[Anmerkung] Anmerkung

Wenn anwenderdefinierte Entitäten im SGML-Stil verwendet werden, wie z.B. "&irgendeine-markierung:", wird die erste Definition gegenüber folgenden bevorzugt. Die Entität wird in Form von "<!ENTITY irgendeine-markierung "Wert der Entität">" definiert.

[Anmerkung] Anmerkung

Solange die XML-Markierungen konsistent mit einer bestimmten Art von Namen für diese Markierungen (entweder Daten als Inhalt oder Attributwert) ausgeführt sind, ist die Konvertierung in eine andere XML-Form mittels Extensible Stylesheet Language Transformations (XSLT) eine banale Aufgabe.

Es gibt viele Werkzeuge zur Verarbeitung von XML-Dateien, wie z.B. die Extensible Stylesheet Language (XSL).

Grundsätzlich ist es so, dass Sie eine korrekt formatierte XML-Datei mittels Extensible Stylesheet Language Transformations (XSLT) in jegliches Format umwandeln können.

Extensible Stylesheet Language for Formatting Objects (XSL-FO) ist eine Lösung zur Formatierung. Das fop-Paket ist (aufgrund seiner Abhängigkeit zur Java-Programmiersprache) neu im Debian main-Archiv. Daher wird im Allgemeinen LaTEX-Code mittels XSLT aus XML erstellt und das LaTEX-System dann verwendet, um ausdruckbare Dateien wie DVI, PostScript und PDF zu erzeugen.


Da XML eine Untermenge der Standard Generalized Markup Language (SGML) ist, kann es mit den umfangreichen Werkzeugen, die für SGML verfügbar sind (wie der Document Style Semantics and Specification Language (DSSSL)) verarbeitet werden.


[Tipp] Tipp

GNOMEs yelp ist manchmal praktisch, um DocBook-XML-Dateien direkt zu lesen, da es die Ausgabe ordentlich direkt in X darstellen kann.

Sie können HTML- oder XML-Daten mit folgenden Programmen aus anderen Formaten extrahieren:


HTML-Dateien (nicht-XML) können Sie nach XHTML konvertieren, was eine Instanz von korrekt formatiertem XML ist. XHTML kann von XML-Werkzeugen verarbeitet werden.


Sobald eine saubere XML-Basis generiert wurde, können Sie die XSLT-Technologie nutzen, um Daten basierend auf dem Markup-Kontext zu extrahieren usw.

Das Unix troff-Programm, ursprünglich von AT&T entwickelt, kann für einfachen Textsatz verwendet werden. Es wird normalerweise genutzt, um Handbuchseiten (manpages) zu erzeugen.

TeX, entwickelt von Donald Knuth, ist ein sehr leistungsfähiges Textsatz-Werkzeug und der De-Facto-Standard. LaTeX (ursprünglich geschrieben von Leslie Lamport) ermöglicht einen sehr hochentwickelten Zugriff auf die Fähigkeiten von TeX.


Traditionell ist roff das Haupt-Unix-System zur Textverarbeitung. Lesen Sie roff(7), groff(7), groff(1), grotty(1), troff(1), groff_mdoc(7), groff_man(7), groff_ms(7), groff_me(7), groff_mm(7) und "info groff".

Sie bekommen eine gute Einführung und Referenz zum "-me"-Makro in "/usr/share/doc/groff/", indem Sie das groff-Paket installieren.

[Tipp] Tipp

"groff -Tascii -me -" erzeugt reinen Text mit ANSI-Escape-Sequenzen. Wenn Sie eine Ausgabe ähnlich zu den Handbuchseiten mit vielen "^H" und "_" möchten, verwenden Sie stattdessen "GROFF_NO_SGR=1 groff -Tascii -me -".

[Tipp] Tipp

Um "^H" und "_" aus einer mit groff erzeugten Textdatei zu entfernen, filtern Sie diese mit "col -b -x".

Die TeX Live-Software-Distribution stellt ein vollständiges TeX-System bereit. Das texlive-Metapaket enthält eine sinnvolle Auswahl von TeX Live-Paketen, die für die meisten Aufgaben ausreichend sein sollte.

Es gibt viel Ressourcen für TeX und LaTeX:

  • The teTeX HOWTO: The Linux-teTeX Local Guide;

  • tex(1);

  • latex(1);

  • "The TeXbook", von Donald E. Knuth (Addison-Wesley);

  • "LaTeX - A Document Preparation System", von Leslie Lamport (Addison-Wesley);

  • "The LaTeX Companion", von Goossens, Mittelbach, Samarin (Addison-Wesley).

Dies ist die leistungsfähigste Textsatz-Umgebung. Viele SGML-Prozessoren nutzen es im Hintergrund zur Textverarbeitung. Lyx aus dem lyx-Paket sowie GNU TeXmacs aus dem texmacs-Paket bieten eine nette WYSIWYG-Umgebung zum Editieren von LaTeX-Dokumenten, zu der viele Leute Emacs oder Vim als Quelltext-Editor wählen.

Es sind viele Online-Ressourcen verfügbar:

Wenn die Dokumente größer werden, könnte TeX eventuell Fehler verursachen. Sie müssen dann die Pool-Größe in "/etc/texmf/texmf.cnf" erhöhen (oder editieren Sie besser "/etc/texmf/texmf.d/95NonPath" und führen update-texmf(8) aus), um dieses Problem zu beheben.

[Anmerkung] Anmerkung

Der TeX-Quelltext von "The TeXbook" ist unter http://tug.ctan.org/tex-archive/systems/knuth/dist/tex/texbook.tex verfügbar. Diese Datei enthält die meisten der benötigten Makros. Ich habe gehört, dass Sie dieses Dokument mit tex(1) verarbeiten können, wenn Sie die Zeilen 7 - 10 auskommentieren und "\input manmac \proofmodefalse" hinzufügen. Es wird dringend empfohlen, dass Sie dieses Buch (wie auch alle anderen Bücher von Donald E. Knuth) kaufen, statt die Online-Version zu lesen, aber der Quelltext ist ein tolles Beispiel für TeX-Eingaben!

Druckfähige Daten werden im Debian-System im PostScript-Format dargestellt. CUPS (Common Unix Printing System) verwendet Ghostscript als Rasterizer-Backend-Programm für Drucker, die selbst kein PostScript verstehen.

Sie können zwei PostScript (PS)- oder Portable Document Format (PDF)-Dateien mit dem gs(1)-Befehl von Ghostscript zusammenführen:

$ gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=bla.ps -f datei1.ps datei2.ps
$ gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=bla.pdf -f datei1.pdf datei2.pdf
[Anmerkung] Anmerkung

PDF, ein plattform-unabhängiges Datenformat für druckfähige Daten, ist im Grunde ein komprimiertes PS-Format mit einigen zusätzlichen Funktionalitäten und Erweiterungen.

[Tipp] Tipp

Auf der Befehlszeile sind psmerge(1) und andere Befehle aus dem psutils-Paket sehr nützlich für die Bearbeitung von PostScript-Dokumenten. Befehle aus dem pdfjam-Paket funktionieren ähnlich für die Bearbeitung von PDF-Dokumenten. pdftk(1) aus dem pdftk-Paket ist ebenfalls praktisch, um PDF-Dokumente zu bearbeiten.

Folgende Pakete mit Werkzeugen für druckfähige Daten sind mir ins Auge gestochen:

Tabelle 11.15. Liste von Werkzeugen für druckfähige Daten

Paket Popcon Größe Schlüsselwort Beschreibung
poppler-utils V:57, I:528 507 pdf → ps,text,… PDF-Hilfsprogramme: pdftops, pdfinfo, pdfimages, pdftotext, pdffonts
psutils V:28, I:471 193 ps → ps Werkzeuge zur Konvertierung von PostScript-Dokumenten
poster V:1, I:14 80 ps → ps Erzeugen großer Poster aus PostScript-Seiten
enscript V:4, I:42 2147 text → ps,html,rtf Konvertieren von ASCII-Text nach PostScript, HTML, RTF oder Pretty-Print
a2ps V:8, I:80 3654 text → ps 'Anything to PostScript'-Konvertierer (Jegliches nach PostScript) und Pretty-Printer
pdftk V:10, I:57 2971 pdf → pdf Werkzeug zur Konvertierung von PDF-Dokumenten: pdftk
mpage V:0, I:8 224 text,ps → ps Mehrere Seiten auf ein Blatt drucken
html2ps V:1, I:11 320 html → ps Konvertierer von HTML nach PostScript
pdfjam I:7 53 pdf → pdf Werkzeuge zur Konvertierung von PDF-Dokumenten: pdf90, pdfjoin und pdfnup
gnuhtml2latex V:0, I:3 53 html → latex Konvertierer von HTML nach LaTeX
latex2rtf V:0, I:8 400 latex → rtf Konvertieren von Dokumenten von LaTeX nach RTF, die dann von MS Word gelesen werden können
ps2eps V:9, I:120 116 ps → eps Konvertierer von PostScript nach EPS (Encapsulated PostScript)
e2ps V:0, I:0 188 text → ps Text-nach-PostScript-Konvertierer mit Unterstützung für japanische Zeichenkodierung
impose+ V:0, I:1 180 ps → ps PostScript-Hilfsprogramme
trueprint V:0, I:0 123 text → ps Viele Quellformate (C, C++, Java, Pascal, Perl, Pike, Sh und Verilog) nach PostScript konvertieren mittels Pretty-Print (C-Sprache)
pdf2svg V:0, I:5 50 ps → svg Konvertierer von PDF in das Scalable Vector Graphics-Format
pdftoipe V:0, I:0 48 ps → ipe Konvertierer von PDF in IPE's XML-Format

Die beiden vom Common Unix Printing System (CUPS) angebotenen Befehle lp(1) und lpr(1) bieten Optionen, um das Drucken von druckfähigen Daten spezifisch anzupassen.

Mit einem der folgenden Befehle können Sie drei Kopien einer Datei auf einmal ausdrucken:

$ lp -n 3 -o Collate=True dateiname
$ lpr -#3 -o Collate=True dateiname

Druckoperationen können über Optionen für den Drucker noch weitgehender angepasst werden, z.B. mit "-o number-up=2", "-o page-set=even", "-o page-set=odd", "-o scaling=200", "-o natural-scaling=200" usw. Diese Optionen sind dokumentiert unter Command-Line Printing and Options.

Folgende Pakete für die Konvertierung von Mail-Daten sind mir aufgefallen:


[Tipp] Tipp

Ein Internet Message Access Protocol-Version4-Server (IMAP4) (Näheres in Abschnitt 6.7, „POP3-/IMAP4-Server“) kann verwendet werden, um Mails von proprietären Mail-Systemen zu exportieren, wenn der Mail-Client konfiguriert werden kann, IMAP4-Server zu nutzen.

Mail-Daten (SMTP) sollten auf eine Abfolge von 7-Bit-Zeichen beschränkt werden. Daher werden Binärdaten und 8-Bit-Textdaten über Multipurpose Internet Mail Extensions (MIME) und die Auswahl des Zeichensatzes (lesen Sie dazu Abschnitt 8.3.1, „Grundlagen der Kodierung“) im 7-Bit-Format kodiert.

Das Standardformat zum Speichern von Mails ist mbox gemäß RFC2822 (aktualisiertes RFC822). Näheres dazu in mbox(5) (aus dem mutt-Paket).

Für europäische Sprachen wird normalerweise "Content-Transfer-Encoding: quoted-printable" mit dem ISO-8859-1-Zeichensatz bei Mails verwendet, da es dabei nicht viele 8-Bit-Zeichen gibt. Wenn europäischer Text in UTF-8 kodiert ist, wird dabei voraussichtlich "Content-Transfer-Encoding: quoted-printable" benutzt, da es überwiegend 7-Bit-Zeichen sind.

Für Japanisch wird gewöhnlich "Content-Type: text/plain; charset=ISO-2022-JP" bei Mails verwendet, um den Text im 7-Bit-Format zu halten. Ältere Microsoft-Systeme könnten jedoch Mail-Daten in Shift-JIS versenden, ohne dies korrekt zu deklarieren. Wenn japanischer Text in UTF-8 kodiert ist, wird dabei voraussichtlich Base64 benutzt, da dabei viele 8-Bit-Zeichen enthalten sind. Die Situation bei anderen asiatischen Sprachen ist ähnlich.

[Anmerkung] Anmerkung

Falls Sie mit einer Debian-fremden Client-Software auf Ihre nicht-Unix-Mail-Daten zugreifen können und dieser Client mit einem IMAP4-Server kommunizieren kann, können Sie die Mails von dem System herunterholen, indem Sie einen eigenen IMAP4-Server laufen lassen (lesen Sie dazu Abschnitt 6.7, „POP3-/IMAP4-Server“).

[Anmerkung] Anmerkung

Falls Sie andere Formate zur Speicherung Ihrer Mails nutzen, ist die Umstellung auf das mbox-Format ein guter erster Schritt. Ein vielseitiges Client-Programm wie z.B. mutt(1) kann dabei nützlich sein.

Sie können den Inhalt einer Mailbox auf einzelne Nachrichten aufsplitten, indem Sie procmail(1) und formail(1) verwenden.

Jede Mail kann mittels munpack(1) aus dem mpack-Paket (oder mit anderen spezialisierten Werkzeugen) entpackt werden, um die MIME-kodierten Inhalte zu erhalten.

Folgende Pakete zur Konvertierung, Bearbeitung und Organisation von grafischen Daten sind mir aufgefallen:

Tabelle 11.17. Liste von Werkzeugen für Grafikdaten

Paket Popcon Größe Schlüsselwort Beschreibung
gimp V:102, I:519 15644 image(bitmap) GNU Image Manipulation Program (GIMP)
imagemagick V:229, I:579 247 image(bitmap) Programme zur Bildbearbeitung
graphicsmagick V:7, I:15 4552 image(bitmap) Programme zur Bildbearbeitung (Abspaltung von imagemagick)
xsane V:30, I:202 742 image(bitmap) GTK+-basierte X11-Oberfläche für SANE (Scanner Access Now Easy)
netpbm V:33, I:580 3846 image(bitmap) Werkzeuge zur Grafikkonvertierung
icoutils V:6, I:45 167 png ↔ ico(bitmap) Konvertieren von MS-Windows-Icons und -Cursor in das und vom PNG-Format (Favicons)
scribus V:19, I:32 52910 ps/pdf/SVG/… Scribus DTP-Editor
libreoffice-draw V:323, I:456 9605 image(vector) LibreOffice Office-Programm - Zeichnen
inkscape V:157, I:401 77158 image(vector) SVG (Scalable Vector Graphics)-Editor
dia-gnome V:11, I:16 575 image(vector) Diagramm-Editor (GNOME)
dia V:28, I:46 575 image(vector) Diagramm-Editor (Gtk)
xfig V:16, I:26 1848 image(vector) Programm zur interaktiven Erzeugung von Objekten in X11
pstoedit V:20, I:412 639 ps/pdf → image(vector) PostScript- und PDF-Dateien in editierbare Vector-Grafiken (SVG) konvertieren
libwmf-bin V:19, I:401 91 Windows/image(vector) Konvertierungswerkzeuge für Windows-Metadaten (Vector-Grafiken)
fig2sxd V:0, I:0 200 fig → sxd(vector) XFig-Dateien in das OpenOffice.org-Draw-Format konvertieren
unpaper V:2, I:15 671 image → image Werkzeug zum Nachbearbeiten von eingescannten Seiten für OCR
tesseract-ocr V:4, I:28 552 image → text freie OCR-Software basierend auf HPs kommerzieller OCR-Engine
tesseract-ocr-eng I:29 58870 image → text OCR-Engine-Daten: tesseract-ocr-Sprachdateien für englischen Text
gocr V:3, I:29 494 image → text freie OCR-Software
ocrad V:1, I:10 314 image → text freie OCR-Software
eog V:118, I:394 10395 image(Exif) Bildbetrachter Eye of GNOME
gthumb V:22, I:39 3114 image(Exif) Bildbetrachter und -browser (GNOME)
geeqie V:19, I:30 1528 image(Exif) Bildbetrachter, der GTK+ verwendet
shotwell V:41, I:342 6320 image(Exif) Digitalfoto-Organizer (GNOME)
f-spot V:1, I:5 9088 image(Exif) persönliches Foto-Verwaltungsprogramm (GNOME)
gtkam V:0, I:11 1259 image(Exif) Anwendung für das Abrufen von Medien aus Digitalkameras (GTK+)
gphoto2 V:1, I:18 831 image(Exif) gphoto2-Befehlszeilen-Client für Digitalkameras
gwenview V:35, I:90 4403 image(Exif) Bildbetrachter (KDE)
kamera V:5, I:89 250 image(Exif) Unterstützung von Digitalkameras für KDE-Anwendungen
digikam V:7, I:24 9403 image(Exif) Digitalfoto-Verwaltung für KDE
exiv2 V:10, I:151 245 image(Exif) Werkzeug zur Bearbeitung von Exif-/IPTC-Metadaten
exiftran V:3, I:32 55 image(Exif) Programm für die Umwandlung der JPEG-Bilder von Digitalkameras
jhead V:2, I:20 125 image(Exif) Bearbeitung des Nicht-Bildteils von Exif-konformen JPEG-Dateien
exif V:1, I:11 370 image(Exif) Befehlszeilen-Werkzeug, um EXIF-Informationen von JPEG-Dateien anzuzeigen
exiftags V:0, I:4 198 image(Exif) Werkzeug, um Exif-Informationen aus Digitalkamera-JPEG-Dateien auszulesen
exifprobe V:0, I:3 464 image(Exif) Metadaten aus Digitalbildern auslesen
dcraw V:4, I:31 323 image(Raw) → ppm Dekodierer für Digitalkamerabilder im RAW-Format
findimagedupes V:0, I:2 125 image → fingerprint Visuell ähnliche oder doppelte Bilder finden
ale V:0, I:0 757 image → image Bilder zusammenfügen, um die Wiedergabetreue zu erhöhen oder Mosaike zu erzeugen
imageindex V:0, I:0 171 image(Exif) → html Erzeugen von statischen HTML-Galerien aus Bildern
bins V:0, I:0 1173 image(Exif) → html Erzeugen statischer HTML-Photoalben aus XML- und EXIF-Informationen
outguess V:0, I:0 252 jpeg,png universelles Steganographie-Werkzeug
librecad V:12, I:19 5870 DXF Editor für computerunterstützte Konstruktion (Computer-aided design, CAD) (KDE)
blender V:4, I:35 70138 blend, TIFF, VRML, … Editor für 3D-Inhalte (Animationen usw.)
mm3d V:0, I:1 5171 ms3d, obj, dxf, … 3D-Modell-Editor auf Basis von OpenGL
open-font-design-toolkit I:0 28 ttf, ps, … Metapaket für Open-font-Design
fontforge V:1, I:10 2537 ttf, ps, … Editor für PS-, TrueType- und OpenType-Schriften
xgridfit V:0, I:0 898 ttf Programm zum Gridfitting und Hinting von TrueType-Schriften

[Tipp] Tipp

Weitere Werkzeuge zur Bildbearbeitung finden Sie mit dem regulären Ausdruck "~Gworks-with::image" in aptitude(8) (lesen Sie dazu auch Abschnitt 2.2.6, „Optionen für Suchmethoden mit aptitude“).

Obwohl grafische GUI-Programme wie gimp(1) sehr leistungsfähig sind, können auch Befehlszeilenwerkzeuge wie imagemagick(1) nützlich sein, um automatisierte Bildbearbeitung über Skripte durchzuführen.

Der De-Facto-Standard für Bilddateien von Digitalkameras ist Exchangeable Image File Format (EXIF); dies entspricht dem JPEG-Dateiformat mit zusätzlichen Metainformationen. Es kann auch Informationen wie Datum, Zeit und Kameraeinstellungen speichern.

Das Patent zur verlustlosen Datenkompression mit dem Lempel-Ziv-Welch-(LZW-)Algorithmus ist abgelaufen. Graphics Interchange Format (GIF)-Werkzeuge, die die LZW-Kompressionsmethode nutzen, sind jetzt frei im Debian-System verfügbar.

[Tipp] Tipp

Alle Digitalkameras oder Scanner mit Wechseldatenträgern als Speichermedium funktionieren unter Linux über USB-Speicher-Lesegeräte, da sie die Design-Regeln für Kamera-Dateisysteme befolgen und FAT als Dateisystem verwenden. Näheres finden Sie in Abschnitt 10.1.7, „Wechseldatenträger“.

Es gibt viele andere Programme zum Konvertieren von Daten. Folgende Pakete habe ich über den regulären Ausdruck "~Guse::converting" in aptitude(8) gefunden (Näheres dazu in Abschnitt 2.2.6, „Optionen für Suchmethoden mit aptitude“).


Sie können die Daten aus einem RPM-Archiv auch mit folgendem Befehl extrahieren:

$ rpm2cpio datei.src.rpm | cpio --extract