智能编码转换

智能编码转换

我有一个文件,其中包含英语和俄语行(每行一种语言)。俄语行是使用其中一种或另一种语言手动编码的翻译编码。

我需要将俄语翻译文本转换为西里尔文,并保持英语文本完整。

是否有一个 Linux 命令行工具可以帮助我做到这一点?

答案1

您可以尝试使用等来实现这一点sedawk并尝试通过命令行实现它,但我认为使用 Perl 和一个简短的脚本会更方便。

您可以使用 perl 模块语言::Translit转换行,并“猜测”该行是否是英文Lingua::识别

这是一些代码。我没有对其进行适当的测试,但应该可以给你提供一些可以自己编写的代码。

use Lingua::Translit;
use Lingua::Identify qw(langof set_active_languages);

set_active_languages(qw/ru en/);

my $tr = new Lingua::Translit("ISO 9");

open OUTFILE, ">output.txt" or die $!;
open INFILE, "input.txt" or die $!;
while (my $line = <INFILE>) { 
    my $a = langof($line);
    if ($a eq "ru") {
        my $trline = $tr->translit_reverse($line);
        print OUTFILE $trline;
    } else {
        print OUTFILE $line;
    }
}
close(INFILE);
close(OUTFILE);

相关内容