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. evt. müssen das "U" und ggf. in den Hexcodes auftauchende Buchstaben "ABCDEF" (für andere Bereiche) _klein_ geschrieben werden. cu jth -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org