#! /usr/bin/env perl # # insert.pl # # Dictionary maintenance tool - insert words into dictionary. # Given a list of words and a dictionary file, this script # will insert the words into the file, in alphabetical order, # with a minimum of disruption of the file itself. # # It is assumed that the word-list holds one word per line, # and that the word-list is already in alphabetical order. # # Example usage: # ./insert.pl wordlist_file en/words/words.adj.1 # # Copyright (C) 2009 Linas Vepstas # if ($#ARGV < 1) { die "Usage: insert.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 my $linelen = 0; foreach (@entries) { my $wd = $_; $linelen += length $_; while (($_ gt $word) && ($word ne "")) { print "$word "; $linelen += length $word; $word = shift @words; # Insert a newline if the resulting line is too long. if ($linelen > 62) { print "\n"; $linelen = 0; } } print "$_ "; } print "\n"; } close (DICT);