急求~~~!!!如何用perl处理500多个的首列相同的txt文件,要进行列合并。
每个txt文件行数相同,只有2列数据。需要把每一个文件第二列数据按列合并成一个txt文件~
文件共有110M能在windows下运行么
追答理论上可以运行。IO::File->getline()是逐行读取,占用内存不算太大。
你尝试运行一下不就知道了。
文件数量比较多,可以加一行用来debug
$files = globe("/dir/*.txt");
%res
foreach $file($files){
print("$file");//加一行打印文件名,可以了解是否一直在执行。免得进程死了都不知道
$FH= IO::File->new("getline()){
($key,$value) = split(/\s+/,$line);
@array = $res{$key};//严谨点加个undef判断吧,懒得写了
push(@array,$value);
$res{$key} = @array;
undef @array;
}
}
$out = IO::File->new(">res.txt")
foreach $key (keys(%res)){
$out->print("$key ".join(" ",$res{$key})."\n");
}
十分感谢~膜拜大神,我先去试试看~
本回答被网友采纳