Perl版- use File::Slurp;
- STDOUT->autoflush(1);
-
- my %name;
- grep { s/\..+$//; $name{$_} = 1 } glob "*.srt";
- grep { merge( $_ ); } sort keys %name;
-
- sub merge
- {
- my $name = shift;
- my @zh = read_file( $name .".zh-cn.srt" );
- my @en = read_file( $name .".en.srt" );
- printf "%s\n", $name;
-
- for my $id ( 0 .. $#en ) {
- $en[$id] .= $zh[$id+1] if ( $en[$id] =~ /\d+:\d+:\d+.*\d+:\d+:\d+/ );
- }
- write_file( "${name}.chs-en.srt", @en );
- }
复制代码
|