我想從文件中獲取重複行的最後一個條目。
重複檢查的基礎將是csv的第一個元素。如何使用perl從文件中獲取最後一個重複行
副本可能相鄰,也可能不相鄰。
輸入文件:
971~11
972~12
973~11
974~11
972~11
預期輸出:
971~11
973~11
974~11
972~11
我不是在尋找一個Perl的一個班輪,我打算寫爲
的子程序。
謝謝!
PS:
我從什麼地方修改這個代碼,但是這只是刪除了重複
#!/usr/bin/perl -w
while (<STDIN>) { push (@lines, $_); }
print "-\n";
foreach my $i (@lines)
{
@newline = split(/\||~/, $i);
if (scalar(grep{ /$newline[0]/ } @lines) == 1)
{
print $i;
}
}
是輸出的重要順序? – Mat 2011-12-31 14:50:20
輸入必須讀取未排序,但輸出順序無關緊要。 – cr8ivecodesmith 2011-12-31 14:58:22
請解釋一下這個更多?你想要「獲得」最後一個重複條目。 (你的意思是刪除它或捕獲它?)通過重複輸入,你真的意味着只複製第一個字段?根據您提供的輸出,我懷疑您所要保留的是最後一次出現具有重複第一個字段的條目,並刪除先前看到的任何條目。 – lhagemann 2011-12-31 15:02:37