Chcę odkażać niektóre dane wejściowe i zamienić kilka znaków na akceptowalne dane wejściowe, np. duński "å
" z "aa
".Wyrażenie regularne w sed dla wielu zamienników w jednym oświadczeniu
Można to łatwo zrobić za pomocą kilku instrukcji, np. /æ/ae/
, /å/aa/
, /ø/oe/
, ale ze względu na ograniczenia narzędzi, chcę móc to zrobić w pojedynczym wyrażeniu regularnym.
mogę złapać wszystkich istotnych sprawach (/[(æ)(ø)(å)(Æ)(Ø)(Å)]/
), ale wymiana nie działa jak chcę go (ale prawdopodobnie całkowicie zgodnie z przeznaczeniem):
$ 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
(pierwsze echo jest to, aby pokazać, że nie jest zagadnieniem kodowania)
Tak na marginesie, problemem z narzędziem jest to, że chciałbym również użyć tego samego wyrażenia regularnego w Sublime Text 2 snippet.
Ktoś jest w stanie rozpoznać, co jest nie tak z moim oświadczeniem regex?
Z góry dziękuję.
Blarg, oczywiście. Powinienem bardziej podkreślić użycie Sublime Text snippet, ale jest to całkowicie poprawna odpowiedź na główne pytanie. – Jan
@ Jan, dzięki. Nie sądzę, że możesz napisać pojedyncze wyrażenie, które zastępuje jeden z kilku możliwych dopasowań z jednym z kilku zamienników, szczególnie nie z 'sed'. –