Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Сравнение двух текстовых файлов


Автор: mustafallah 21.12.2016, 23:42
Всем привет.
Ребят подскажите простенький скриптик, который сравнит  2 текстовых файла и удалит дубликаты создаст 3 файл и выдаст уникальные строки.
Вот нашел на просторах интернета, только как доделать чтобы результат сохранялся в файл 3.txt, а не выводился на экран?
Код

#!/usr/bin/perl

use strict;
use warnings;

die "Usage: $0 filtered.txt filter.txt\n" if @ARGV != 2;

my %filter;

open F, $ARGV[1] or die "Cannot open $ARGV[1]: $!\n";
while(<F>) {
    chomp;
    $filter{$_} = 1;
}
close F;

open F, $ARGV[0] or die "Cannot open $ARGV[0]: $!\n";
while(<F>) {
    chomp;
    print "$_\n" unless $filter{$_};
    $filter{$_} = 1;
}

Автор: arto 22.12.2016, 07:50
Дубликаты чего? Строк, файлов?

Автор: alezzz 22.12.2016, 08:59
Код

foreach my $line (keys %filter) {
    print "$line\n";
}

Автор: mustafallah 22.12.2016, 12:33
Это куда вставить? народ подскажите я просто вообще в программировании не шарю

Автор: alezzz 22.12.2016, 13:24
это вставить в конец программы, а потом перенаправить вывод в файл.

Добавлено через 5 минут и 6 секунд
вот блин, невнимательно прочитал и суть проблемы, и исходный текст, там уже выводит уникальные строки, просто перенаправьте в файл.

Автор: mustafallah 22.12.2016, 14:45
а как перенаправить?  я просто говорю же в программировании 0, если не сложно покажите готовый скрипт

Автор: alezzz 22.12.2016, 16:06
тут как раз от программирования 0 и нужен
https://ru.wikipedia.org/wiki/Перенаправление_ввода-вывода

Автор: mustafallah 23.12.2016, 11:21
Понял smile тупанул, спасибо ;) разобрался

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)