現在我正在嘗試同步按日期列出的兩個數據文件,以便稍後進行比較。不過,我似乎無法僅打印日期匹配的行。此時我已將每個文件的數據分成兩個數組。我只需要找到兩個數組中的日期並將其打印出來。任何建議將不勝感激。perl中匹配來自2個數組的元素
這裏是設置,我一起工作的原始數據的樣本,每個文件是在相同的格式:
09/11/2009,00:56:00,51.602,47.894,87,88,0,1032 09/12/2009,00:56:00,57.794,55.796,93,54,0,1023.6 09/13/2009,00:56:00,64.292,62.204,93,66,0,1014.4 09/14/2009,00:56:00,61.592,55.4,80,25,0,1009.6 09/15/2009,00:56:00,58.604,53.798,84,31,0,1009.1 09/16/2009,00:56:00,53.6,48.902,84,45,0,1017
我已日期分成每個文件的陣列。我的最終目標是隻打印兩行文件都有數據的代碼行。所以要做到這一點,我想比較兩個數組與日期元素。
我最初的代碼是這樣的:
foreach $bdate(@bdate){
while (<PL>){
chomp;
@arr = split (/,/);
$pday=$arr[1];
push @pdate, $pday;
if ($bdate eq $pdate){
print "$bdate,$pday\n";
}
}
你是什麼意思「按日期上市」?你能否提供一些示例代碼來顯示你有多遠,哪些部分不起作用? – Ether 2010-05-31 17:46:46
繼承人和我的數據集的例子,爲了我的問題的目的,我已經拆分了保留mm/dd/yyyy格式的日期並將其推入數組中。我需要採用這些數組中的兩個,並只查找兩個數組中的日期。 02/12/2010,00:56:00,27.302,15.602,61,27,3.24193043478261,1001 02/13/2010,00:56:00,26.006,6.008,42,75,1.6209652173913,1005.8 02 /14/2010,00:56:00,26.708,16.502,65,329,18.9112608695652,992.9 02/15/2010,00:56:00,30.902,19.004,61,287,8.64514782608696,996。8 – Paul 2010-05-31 20:21:13
繼承人我試過的第一個代碼的樣本: foreach $ bdate(@bdate){ while(){ chomp; \t @arr = split(/,/); \t $ pday = $ arr [1]; \t push @pdate,$ pday; \t \t if($ bdate eq $ pdate){ \t \t print「$ bdate,$ pday \ n」; \t \t} \t \t \t } –
Paul
2010-05-31 20:23:22