Mailinglist Archive: opensuse-de (1367 mails)

< Previous Next >
Re: sed: Bis Unicode U+0370 (880) alles loeschen
  • From: Martin Blank <blankmrty@xxxxxx>
  • Date: Mon, 30 Aug 2010 13:53:43 +0200
  • Message-id: <4C7B9BC7.4040809@xxxxxx>
Joerg Thuemmler schrieb:
Martin Blank schrieb:

Al Bogner schrieb:

Ich möchte bis ausschließlich U+0370 (hex) bzw. 880 (dezimal) unter
UTF-8 alles löschen. tr dürfte das nicht können. Ich habe das probiert:

tr -d '[\0-\879]'

Mit sed komme ich mit der Syntax dazu nicht klar. Wie macht man das mit
sed? Andere Lösungen als mit sed sind natürlich auch willkommen.

Sollte nach U+03FF (1023) unerwarteter Weise noch was bleiben, so
sollte das optimalerweise auch noch gelöscht werden, wenn das nicht zu
rechenaufwendig ist.

Al


Ungetestet: sed -e '/\\U0370/d' für das eine Zeichen, '/\\U0370*/d' bis
zum Zeilenende, '/\\U0370/,/$/d' für alle Zeilen ab der ersten
Fundstelle. Die Zeile, die das Zeichen enthält, wird dann auch
vollständig - inklusiv der Zeichen vom Zeilenanfang bis zur Fundstelle -
gelöscht.



Hi,

soweit ich verstehe, will Al nicht alle Zeichen in einer Zeile nach
U0370 löschen, sondern alle, die im Zeichensatz vor U0370 liegen. Wenn
Martins Suchmuster stimmt (ich nutze Unicode nur, wo es nicht zu umgehen
ist, da unsere DB latin1 ist), käme dann wohl eher

sed -e 's/[\\U0000-\\U0370]//g' in Frage.

Also einen Bereich des Zeichensatzes und nicht der Datei. Dann ist mein
Lösungsvorschlag allerdings nicht korrekt. Zum Suchmuster: Ich musste
einmal in einer Datei verschiedene Sonderzeichen umsetzen, von denen mir
nur ihr Hex-Code, die Darstellung z.B. im emacs und wie sie eigentlich -
auf meiner Maschine - aussehen sollten bekannt war. Die Umsetzung nach
TeX sah etwa so aus:

[...]
s/\\u201e/{\\glqq}/g
s/\\u201c/{\\grqq}/g
s/\xe4/{\\"a}/g
[...]

Dabei sind die beiden ersten Zeilen wohl die emacs-Darstellung, die
letzte die Umsetzung des Hex-Codes.

evt. müssen das "U" und ggf. in den Hexcodes auftauchende Buchstaben
"ABCDEF" (für andere Bereiche) _klein_ geschrieben werden.

cu jth



--
Mit freundlichen Grüßen

Martin Blank

--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+unsubscribe@xxxxxxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups