Mailinglist Archive: opensuse-de (1367 mails)

< Previous Next >
Re: sed: Bis Unicode U+0370 (880) alles loeschen
  • From: David Haller <dnh@xxxxxxxxxxxx>
  • Date: Mon, 30 Aug 2010 16:44:50 +0200
  • Message-id: <20100830144450.GA7265@xxxxxxxxxxxxxxxxxx>
Hallo,

Am Mon, 30 Aug 2010, Al Bogner schrieb:
Am Mo, 30 Aug 2010 15:50:41 CEST schrieb David Haller:
Am Mon, 30 Aug 2010, David Haller schrieb:
[..]

C&P Fehler:

perl -ne 'use Encode;
$_ = decode("ut8", $_);
$_ = decode("utf8", $_);

s/[^\x{0370}-\x{03FF}]//g;
print encode("utf8",$_);'

Soweit ich das hier testen kann sollte das klappen ;)

$ echo 'äöü µ' | recode latin9..utf8 | perl -ne 'use Encode;
$_=decode("8", $_);s/[\x{00F5}-\x{00FF}]//g; print
$_=decode("utf8", $_);

Wenn ich ein recode oder iconv mit tr verwende, dann ist das sicher ein
Lösungsansatz, aber der kommt mir vor als ob man mit Kanonen auf
Spatzen schießt. Wie schon geschrieben, es geht nur darum, kommen
_irgendwelche_ griechischen Zeichen in einer Variable vor oder nicht.

Das recode ist nur, weil ich hier latin9 im xterm verwende und nicht
utf8. Wenn du utf8 in der Variablen hast:

echo "$SONDERZEICHEN" | perl -ne 'use Encode; $_ = decode("utf8", $_);
s/[^\x{0370}-\x{03FF}]//g; print encode("utf8",$_);'

Ausgabe ist _nur_ aus dem griechischen Unicode-Block U+0370 bis U+03FF.
Ansonsten ist die Ausgabe leer.

Äh, evtl. braucht's noch ne Sonderbehandlung für den Zeilenumbruch,
und anderen Leerraum, den will man wohl aufheben.

s/[^\x{0000}-\x{0020}\x{0370}-\x{03FF}]//g;

Das hebt erstmal den Sonderzeichenblock bis zum Leerzeichen und dazu
noch den gr. Block auf.

HTH,
-dnh

--
Hey, what do you expect from a culture that
*drives* on *parkways* and *parks* on *driveways*?
-- Gallagher
--
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 >