PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nicht erlaubte Zeichen löschen



tibrandt
15-07-2008, 10:03
Hallo,

ich muss eine Textdatei verarbeiten.
Diese ist nach iso-8859-1 erstellt worden.

Leider wird die ISO-Norm nicht immer eingehalten, das heißt, es sind auch komische Zeichen, wie französische Buchstaben oder “<9f>“ in der Datei enthalten.

Wie man mit “sed“ Umlaute bereinigt weis ich, funktioniert auch.

Meine Frage ist, wie bekomme ich diese nicht erlaubte Zeichen aus der Textdatei heraus.
Ich möchte nicht für jedes Zeichen eine Regel schreiben.
Bash-Skript Ansatz wäre gut!

Danke!

Tino Brandt

mehlvogel
15-07-2008, 11:01
Könnte tr das tun was du willst?


tr -d \NNN-\MMM

Wobei NNN und MMM die jeweils erste und letzte oktale Repräsentation des Bereichs der verbotenen Zeichen sind.
Vielleicht hilft dir ja die manpage von tr, um auf eine andere Idee zu kommen.

tibrandt
15-07-2008, 13:41
Hallo,

danke für den Tipp.

Mit "tr" und "sed" kenne ich mich aus, das Problem ist, nach welchen Zeichen soll ich suchen.
Ich will mit "sed" bzw. tr nicht jedesmal eine Regel für ein neues unerlaubtes Zeichen erstellen.
Vielleicht gibt es was, wie man alle diese Zeichen erkennen und löschen kann.

Danke!

Gruß
Tino Brandt

yankee42
15-07-2008, 14:28
Guck in einer Tabelle (zum Beispiel hier: http://www.asciitable.com/ ) nach, welche Zeichen du nicht drin haben willst und dann erstellst du für tr eine Liste aller Zeichen, die weggeschmissen werden und dann hast du ein Script für immer...