Транслит

Материал из Xgu.ru

Перейти к: навигация, поиск


Как выполнить транслитерацию потока в UNIX/Linux?

Использовать скрипт:

#!/usr/bin/perl

use utf8;
use Encode;

%tr=qw/
а a б b в v г g д d е e ё yo ж zh з z и i й j к k л l м m
н n о o п p р r с s т t у u ф f х h ц c ч ch ш sh щ shch ъ x ы y ь ' э eh ю yu я ya
А A Б B В V Г G Д D Е E Ё YO Ж ZH З Z И I Й J К K Л L М M
Н N О O П P Р R С S Т T У U Ф F Х H Ц C Ч CH Ш SH Щ SHCH Ъ X Ы Y Ь ' Э EH Ю YU Я YA
/;
sub translit($)
{
    if ($tr{$_[0]}) {
        return $tr{$_[0]};
    }
    else {
        return "$_[0]";
    }
}

binmode STDIN, ":utf8";
binmode STDOUT, ":utf8";
while(<>){
    $a= decode_utf8( $_ );
    $a =~ s/(.)/translit($1)/ge;
    print $a;
}