-1

perl を使用して 2 つのファイルを 1 つに結合したいと考えています。すなわち:

列を含む txt ファイルが 1 つあります。

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

および列を持つ 2 番目のtxtファイル:

Key / Price

2 つのファイルを読み込んで結合し、次のようにします。

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

最初のテーブルのすべての行。どうすればいいですか?私はほとんど経験がありません。

スクリプトでさらに処理できるテーブル (ハッシュ?)、または読み取りと残りのプロセスを実行できる新しいファイルのいずれかが必要です。

どんな助けでも大歓迎です。


皮肉なことに感謝します...私は経験がなく、解決策と思われるahshesがどのように機能するかわかりません...このコードを見つけて使用しようとしましたが、機能しません:

最初のファイルを次のようにロードします。 $list{$file}{$system}{$master_file_name}{$symbol}=$price;

2 つ目: $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;
}

}

4

2 に答える 2

3

私は通常、ポスターに作品を見せることを勧めます。私たちにあなたのためにあなたの仕事をするように頼むのではなく、あなたが試してみて何かがうまくいかないというのは誠意のしるしです. したがって、例を挙げません。つまり、 Tie::Array::CSVを紹介したいと思います。これにより、これをはるかに簡単な作業にすることができます。

于 2013-03-27T21:08:08.160 に答える
0
  • 価格を含むファイルを開く
  • 価格ファイルを一度に 1 行ずつ読み取り、そのデータを Key をキーとするハッシュに入れます。
  • 他のファイルを開く
  • 出力ファイルを開く
  • 他のファイルの各行
    • 価格ハッシュで一致する価格を検索します
    • 既存のレコードの末尾に価格を追加します
    • 新しいレコードを出力ファイルに書き込みます
于 2013-03-28T09:21:02.487 に答える