#! /usr/bin/env perl # # delete.pl # # Dictionary maintenance tool - delete words from dictionary. # Given a list of words and a dictionary file, this script # will delete the words from the file. # # It is assumed that the word-list holds one word per line, # and that the word-list is already in alphabetical order. # # Example usage: # ./delete.pl wordlist_file en/words/words.adj.1 # # Copyright (C) 2009 Linas Vepstas # if ($#ARGV < 1) { die "Usage: delete.pl wordlist-file dict-file\n"; } # Get the word-list, and the dictionary, from the command line my $wordlist_file = @ARGV[0]; my $dict_file = @ARGV[1]; open(WORDS, $wordlist_file); my @words = (); while () { # Get rid of newline at end of word. chop; push @words, $_; } close(WORDS); my $word = shift @words; open (DICT, $dict_file); while () { chop; my @entries = split; # Loop over the entries $gotone = 0; foreach (@entries) { my $entry = $_; while (($entry gt $word) && ($word ne "")) { $word = shift @words; } if ($entry ne $word) { # print "$entry "; print "$entry"; $gotone = 1; } else { $word = shift @words; } } if ($gotone) { print "\n"; } } close (DICT);