#!/usr/bin/perl
binmode(STDOUT, ":utf8");
binmode(STDIN, ":utf8");
use encoding(UTF8);
use utf8;
# διαβάζουμε τον κατάλογο με τους τίτλους λημμάτων που θέλουμε να αφαιρέσουμε από το αρχείο xml
# διαβάζουμε το αρχείο xml και γράφουμε στην έξοδο μόνο τα λήμματα που
# δεν είναι στον κατάλογο
# ο κατάλογος μπορεί να περιέχει ονόματα είτε μέ [[ ]] είτε χωρίς
if ($#ARGV < 0) {
print "Usage: $0 filename-of-titles-to-remove\n";
exit 1;
}
$filename=$ARGV[0];
# hash of titles from file...
open(FILE,'<',$filename) or die("can't open file $filename\n");
binmode(FILE, ":utf8");
while (<FILE>) {
$line=$_;
chomp($line);
$line =~ s/\[//g;
$line =~ s/\]//g;
$titles{$line}=1;
}
close(FILE);
$text="";
while (<STDIN>) {
$line=$_;
$text=$text.$line;
if ($line =~ /<page>/) {
$text = $line;
$title="";
}
elsif ($line =~ /<title>(.*)<\/title>/) {
$title=$1;
}
elsif ($line =~ /<\/page>/) {
if (! $titles{$title}) {
print $text;
}
}
}