Χρήστης:AtouBot/remove-titles.pl
Μετάβαση στην πλοήγηση
Πήδηση στην αναζήτηση
#!/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; } } }