Транслит без перла
Mar. 27th, 2009 10:59 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Как показал опыт, перл не хочет транслитерировать кириллицу из UTF-8. Может быть, и хочет, да я не ту цапу крутил не нашёл метода заставить его делать это. Но с другой стороны, зачем зацикливаться на перле? Можно и без перла:
sed \
-e 's/ё/yo/g' \
-e 's/Ё/Yo/g' \
-e 's/ж/zh/g' \
-e 's/Ж/Zh/g' \
-e 's/ц/ts/g' \
-e 's/Ц/Ts/g' \
-e 's/ч/ch/g' \
-e 's/Ч/Ch/g' \
-e 's/ш/sh/g' \
-e 's/Ш/Sh/g' \
-e 's/щ/shch/g' \
-e 's/Щ/Shch/g' \
-e 's/ю/yu/g' \
-e 's/Ю/Yu/g' \
-e 's/я/ya/g' \
-e 's/Я/Ya/g' \
-e "y/абвгдезийклмнопрстуфхъыьэ/abvgdezijklmnoprstufh'y'e/" \
-e "y/АБВГДЕЗИЙКЛМНОПРСТУФХЪЫЬЭ/ABVGDEZIJKLMNOPRSTUFH'Y'E/"
upd/04.04: забыл сначала к командам замены добавить g
— без него sed
, как и perl
делает всего одну замену.