- 论坛徽章:
- 145
|
本帖最后由 jason680 于 2012-10-10 17:50 编辑
回复 1# xingzhou823
$ perl number_to_word.pl
file in = text1.txt
file key = text2.txt
file out = text3.txt
$ cat text1.txt
1432;3551;51135;5518;5519;5520;5522;55844;5970
1432;3551;51701;5608;9020;9064
$ cat text2.txt
1432 adec
3551 xxx
$ cat text3.txt
adec;xxx;51135;5518;5519;5520;5522;55844;5970
adec;xxx;51701;5608;9020;9064
$ cat number_to_word.pl
#! /usr/bin/env perl
use strict;
use warnings;
my $sFile_in = "text1.txt";
my $sFile_key = "text2.txt";
my $sFile_out = "text3.txt";
open(my $FHin, "<", $sFile_in) or die "can't open $sFile_in\n";
open(my $FHkey, "<", $sFile_key) or die "can't open $sFile_key\n";
open(my $FHout, ">", $sFile_out) or die "can't open $sFile_out\n";
my %hWord;
while(<$FHkey>;){
chomp;
my ($sKey, $sWord) = split;
$hWord{$sKey} = $sWord;
}
while(<$FHin>;){
s/(\d+)/defined $hWord{$1}?$hWord{$1}:$1/ge;
print {$FHout} $_;
}
close $FHin;
close $FHkey;
close $FHout;
print "file in = $sFile_in\n";
print "file key = $sFile_key\n";
print "file out = $sFile_out\n";
|
|