Kategorien
Allgemein Hilfe

Textdatei html-komform konvertieren unter Linux

Letztens hatte ich eine Textdatei, die ich schnell in HTML wandeln wollte. Das Grundgerüst und die Bodytags einfügen geht ja schnell. Doch was ist mit den Sonderzeichen und Umlauten, die natürlich auch in normgerechter Schreibweise vorhanden sein sollen. Beispielsweise wird aus einem ü ein ü und Ö ein Ö. Ich habe dann dieses Problem schnell mit dem Streameditor sed gelöst. Erstellt zuerst die folgenden Dateien und füllt sie mit dem Inhalt in den Rahmen.

Es kann vorkommen, dass unter Linux eine Textdatei gewandelt werden muss. Als Beispiel bringe ich hier eine einfache Textdatei, die HTML-Konform konvertiert werden muss. Dazu gehören, dass alle Umlaute gewandelt werden müssen. Also aus einem ü wird ü und Ö ein Ö. Ich löse dieses Problem gerne mit dem Streameditor sed.


Dazu ein kleines Übungsbeispiel:

Inhalt der Datei txt2html.sh

#!/bin/bash
DATEINAME=$1
sed -f txt2html.sed $DATEINAME.txt >> $DATEINAME.html

Inhalt der Datei txt2html.sed

s/ä/\ä\;/g;
s/Ä/\Ä\;/g;
s/ü/\ü\;/g;
s/Ü/\Ü\;/g;
s/ö/\ö\;/g;
s/Ö/\Ö\;/g;
s/ß/\ß\;/g;

Inhalt der Datei beispiel.txt

# Beispieldatei für die Textkonvertierung- und Bearbeitung.
#
# Obst und Gemüse
1	Erdbeere
2	Zitrone
3	Apfel
4	Banane
5	Pfirsich
#6	Kirsche
7	Gurke
#8	Kiwi
9	Möhre
10	Salat
11	Aubergine
12	Mais
#13	Bohnen
14	Ananas
15	Spargel

Nun kann an den gewünschten Effekt sehen, wenn das Script txt2html.sh mit den folgenden Optionen aufgerufen wird:
thomas@linux: ~>./txt2html.sh beispiel

Von Thomas

Ich bin 50 Jahre und beruflich im IT-Bereich aktiv. Außerdem beschäftige mich seit Mitte der 90er Jahre intensiv mit dem Thema Linux und OpenSource.

Natürlich werde hier ab und zu mal einen Betrag zum Thema Linux und OpenSource verfassen. Ansonsten beschäftige ich mich in meiner Freizeit mit den Themen Amateurfunk, Fotografie und Geocaching.

Eine Antwort auf „Textdatei html-komform konvertieren unter Linux“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.