Прямо сейчас я пытаюсь синхронизировать два файла данных, которые перечислены по дате, чтобы впоследствии можно было сравнивать. Однако я не могу напечатать только строки, в которых совпадают даты. На этом этапе я выделил данные для каждого файла на 2 массива. Мне нужно найти только даты, которые находятся в обоих массивах, и распечатать их. Любые предложения будут высоко ценится.Соответствующие элементы из 2 массивов в perl
Вот пример набора исходных данных, что я работаю с, каждый файл находится в том же формате:
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
Я расколоть дату в массив для каждого файла. Моя конечная цель - напечатать только строки кода, в которых оба файла имеют данные. Поэтому для этого я хотел сравнить 2 массива с элементами, являющимися датами.
Мой исходный код выглядел следующим образом:
foreach $bdate(@bdate){
while (<PL>){
chomp;
@arr = split (/,/);
$pday=$arr[1];
push @pdate, $pday;
if ($bdate eq $pdate){
print "$bdate,$pday\n";
}
}
Что вы подразумеваете под "указанными по дате"? Можете ли вы представить пример кода, чтобы показать, насколько вы получили, и какая часть не работает? – Ether
heres и пример моего набора данных. В целях моего вопроса я разделил дату, сохраняя формат 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
heres образец первого кода, который я пробовал: foreach $ bdate (@bdate) { while () { chomp; \t @arr = split (/, /); \t $ pday = $ arr [1]; \t push @pdate, $ pday; \t \t if ($ bdate eq $ pdate) { \t print "$ bdate, $ pday \ n"; \t \t} \t \t \t } –
Paul