Задача - есть два файла file1 и file2 с текстовыми строками (в основном разными), но возможны дубликаты строк (в двух файлах одинаковая строка). Вот от одинаковых строк в разных файлах надо избавится и записать результат (без дублей) в третий файл.
Пишу скрипт на перле:
#!/usr/local/bin/perl
open (IN1, "<file1");
open (OUT, ">file_with_results");
while ($file1 = <IN>)
{
chomp($file1);
open (IN2, "<file2");
$dubl = 0;
while ($_ = <IN>)
{
if (/$file1/i){$dubl = 1 ;}
}
close IN2;
next if ($dubl);
print OUT $file1,"\n";
}
close IN1;
close OUT;
То есть алгоритм туп как пробка - для каждой строки из file1 проверяем ее наличие по всему file2, каждый раз открывая его заново.
Но где то я ошибся, скрипт на выход выдает только первую строку из первого файла и все.
ПОдскажите, как реализовать желаемое?

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [perl] упростить код (2010)
- Форум Добавление элементов в hash reference в рекурсивной функции (2015)
- Форум Perl: помогите со скриптиком вытаскивания адресов (2006)
- Форум Покритикуйте плагин (2018)
- Форум Postfix -> gnupg ->mailclient Что делать с заголовками писем. (2009)
- Форум Perl (2001)
- Форум [perl] Запись/модификация UTF16-LE файла (2010)
- Форум Can't locate find.pl in @INC (2015)
- Форум Squid и redirect'ор (2003)
- Форум Решил освоить perl =) (2005)