Regulärer Ausdruck in sed für mehrere Ersetzungen in einer Anweisung

Will ich desinfizieren wenig input und ersetzen mehrere Zeichen mit akzeptablen input, z.B. eine Dänische 'å' mit 'aa'.

Dies ist leicht getan mit mehreren Aussagen, z.B. /æ/ae//å/aa//ø/oe/aber aufgrund der Einschränkungen tool, ich möchte in der Lage sein, dies in einem einzigen regulären Ausdruck.

Kann ich fangen alle relevanten Fällen ( /[(æ)(ø)(å)(Æ)(Ø)(Å)]/ ), aber ich Ersatz funktioniert nicht wie ich es will (aber wohl vollkommen wie beabsichtigt):

 $ temp="RødgrØd med flæsk"

 $ echo $temp
 RødgrØd med flæsk

 $ echo $temp | sed 's/[(æ)(ø)(å)(Æ)(Ø)(Å)]/(ae)(oe)(aa)(Ae)(Oe)(Aa)/g'
 R(ae)(oe)(aa)(Ae)(Oe)(Aa)dgr(ae)(oe)(aa)(Ae)(Oe)(Aa)d med fl(ae)(oe)(aa)(Ae)(Oe)(Aa)sk

(ersten echo Zeile ist zu zeigen, dass es nicht ein encoding-Problem)

Nur so nebenbei, das tool Problem ist, dass ich gerne auch die gleichen regex in einer Sublime Text 2 snippet.

Jemand in der Lage, zu erkennen, was ist falsch an meiner regex-Anweisung?

Vielen Dank im Voraus.

InformationsquelleAutor der Frage Jan | 2013-01-03

Schreibe einen Kommentar