繁体   English   中英

在perl中联接两个文件(表)

[英]Join two files (tables) in perl

我想使用perl将两个文件合并在一起。 进一步来说:

我有一个带有列的txt文件:

Irrelevant / Key / Various1 / ... / Various N

和第二个带有列的txt文件:

Key / Price

我想阅读两个文件并加入它们,以便拥有:

Key / Various1 / ... / Various N / Price 

对于第一个表的所有行。 我该怎么做? 我经验不足。

我需要一个可以在脚本中进一步处理的表( 哈希表),或者一个可以读取并执行其余过程的新文件。

任何帮助将不胜感激。


感谢您的讽刺意味……我已经说过,我没有经验,我不知道ahshes是如何工作的,这似乎是解决方案……我发现了这段代码,并试图使用它,但是它不起作用:

我这样加载第一个文件:$ list {$ file} {$ system} {$ master_file_name} {$ symbol} = $ price;

第二个:$ map {$ file} = $ charge;

我加入了他们:%combined =(%map,%list);

foreach my $system (keys(%combined))
{
my $n=0;
my $i=0;
      my $workbook = Spreadsheet::WriteExcel->new("system.xls");
my $worksheet   = $workbook->add_worksheet("summary_unmapped_master_file");
map{$worksheet->write($n, $i++,$_)}   ("list", "charge", "System", "MAster_file", "symbol", "price");
$n++;$i=0;
foreach my $value (sort{$combined{$system}{$b} <=> $combined{$system}{$a}} keys %{$combined{$system}})
{   
    map{$worksheet->write($n, $i++,$_)} ($value,$list{$system}{$value});
    $n++;$i=0;
}

}

我通常鼓励海报展示一些作品。 这是您尝试过的真诚的标志,并且有任何问题没有解决,而不是请我们为您完成工作。 因此,我将不举一个例子。 就是说,我想将您指向Tie :: Array :: CSV 它可以使这项工作变得简单得多。

  • 打开包含价格的文件
  • 一次读取一行价格文件,然后将数据放入在Key上键入的哈希值中。
  • 打开其他文件
  • 打开输出文件
  • 对于其他文件中的每一行
    • 在价格哈希中查找匹配的价格
    • 将价格附加到现有记录的末尾
    • 将新记录写入输出文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM