見的問題在這裏: match-rows-based-on-first-field-and-combine-second-field的Perl:賽上重複第一場最後一個字段合併
你將如何在給定下列條件的perl解決這個:
- 一個CSV文件
- 有幾個不同類別的重複記錄
- 您需要匹配第一個字段併合並/追加分類字段
示例文件:
External ID Item Name Item Description Release Date Expiry Date Weight Template ID Enabled EntityId Classifications Address N/A City State Zipcode Country of domain purchase is made from Title Cover Image Link Author
411280 Shade me Shade me 04-May-2017 01-Jan-9999 0 Y -1 Teen Shade me MC.GIF http://catalog.org/cgi-bin/koha/opac-detail.pl?biblionumber=411280 Brown, Jennifer
411280 Shade me Shade me 04-May-2017 01-Jan-9999 0 Y -1 Books Shade me MC.GIF http://catalog.org/cgi-bin/koha/opac-detail.pl?biblionumber=411280 Brown, Jennifer
413036 Now that's what I call music! Now that's what I call music! 04-May-2017 01-Jan-9999 0 Y -1 Teen Now that's what I call music! MC.GIF http://catalog.org/cgi-bin/koha/opac-detail.pl?biblionumber=413036
所面臨的挑戰是要匹配重複的ID和合並的類別。
Shade me MC.GIF http://catalog.org/cgi-bin/koha/opac-detail.pl?biblionumber=411280 Brown, Jennifer
411280 Shade me Shade me 04-May-2017 01-Jan-9999 0 Y -1 Teen;Books
UPDATE
while (<FILE>) {
next if 1..1;
chomp $_;
my ($id, $name, $desc, $reldate, $expdate, $weight, $temp, $enabled, $ent, $class, $addr, $na, $city, $state, $zip, $country, $title, $img, $link, $auth) = split /\t/ , $_;
if (! $merge{$id}) {
$merge{$id} = "$id, $name, $desc, $reldate, $expdate, $weight, $temp, $enabled, $ent, $class, $addr, $na, $city, $state, $zip, $country, $title, $img, $link, $auth";
} else {
$merge{$class} .= ";$class" if ($merge{$id} ne $class)
}
}
p %merge;
行給我的問題是:
$merge{$class} .= ";$class" if ($merge{$id} ne $class)
你可以看到什麼,我需要做的 - 合併類領域。不工作
你嘗試過什麼至今?您遇到的具體問題或錯誤是什麼?重現問題所需的最短代碼在哪裏? –
將發佈代碼。其實 - 幾乎能夠奏效。 – Bubnoff
已發佈代碼。它幾乎工作,但沒有結合班級領域。 – Bubnoff