Hallo, Am Don, 22 Feb 2007, Al Bogner schrieb:
Folgendes Problem:
Ich habe einen utf-8-Text der lateinische und griechische Zeichen enthält, also
zB VAR1="bla????bla" VAR2="????bla"
Nun möchte ich mich sed bedingt ersetzen, und zwar wenn ???? in der _Mitte_ eines Wortes steht, dann soll "????" durch "ng" ersetzt werden, also im Beispiel: "blangbla". Steht "????" am _Anfang_, dann soll "????" durch "g" ersetzt werden. Im Beispiel soll also dann "gbla" entstehen. Das löst man wohl mit einem regulären Ausdruck.
Voraus: Bei mir klappt das mit UTF-8 nicht so recht, ersetze die γκ also sinngemäß durch das richtige Zeichen. Wobei ich mir nicht sicher bin, wie sed mit UTF-8 umgeht. Ggfs. kann man mit den hexcodes arbeiten. VAR1="blaγκbla" VAR2="γκbla" echo "$VAR2 $VAR1 $VAR2" | sed 's/\(^\|[[:space:]]\)γκ/\1g/g; s/\([^[:space:]]\)γκ/\1ng/g' $ echo "γκbla blaγκbla γκbla blaγκbla γκbla γκbla" | sed 's/\(^\|[[:space:]]\)γκ/\1g/g; s/\([^[:space:]]\)γκ/\1ng/g' gbla blangbla gbla blangbla gbla gbla BTW: generell ist Transliteration per script extrem schwierig. Wie willst du ein gamma transliterieren? Bei der Tabelle zu meinem Atlas finde ich: gamma g vor alpha, omikron, omikron ni, omega und Konsonanten außer gamma, xi und chi y vor alpha iota, epsilon, epsilon iota, ita, iota, omikron iota, ni, ni iota n vor gamm, xi und chi gamma kappa g am Wortanfang ng nicht am Wortanfang *hehe*, HTH, -dnh -- Er will sie nicht? Er, will sie nicht? Er will, sie nicht? Er will sie, nicht? -- Sascha Broich -- 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