NAME
wordplay - anagram finder
SYNOPSIS
wordplay string [-slxavnmd] [-w word] [-f wordfile]
DESCRIPTION
wordplay is an anagram finder. What is an anagram? Well, let’s turn to
Merriam-Webster’s Collegiate Dictionary, Tenth Edition:
anagram:
a word or phrase made by transposing the letters of another word
or phrase.
Each letter in the anagram must appear with the same frequency as in
the original string.
For example, the letters in the word "stop" can be rearranged to spell
"tops" or "pots" or "sotp". "sotp" is not a word and is not of
interest when generating anagrams. "stop" has four letters, so there
are 24 ways to rearrange its letters. However, very few of the
rearrangements actually spell words.
Wordplay, by using a list of words, takes a specified string of letters
and uses the list of words to find anagrams of the string.
By the way, "Wordplay" anagrams to "Rowdy Pal", and the program really
can live up to that particular anagram. I have been able to come up
with anagrams of most of my coworkers’ names that are humorous,
descriptive, satirical, or, occasionally, quite vulgar.
OPTIONS
string String to be anagrammed. This should be seen to the program as
a single argument. If you feel you must put spaces in the
string, under UNIX, you will have to put backslashes in front of
the spaces or just put the entire string in double quotes. Just
leave the spaces out because the program throws them out anyway.
-s Silent operation. If this option is used, the header and line
numbers are not printed. This is useful if you want the output
to contain only the anagrams. Use this option with the l (and
x) option to generate a wordlist which can be piped or
redirected. This option does not suppress error messages that
are printed to stderr. Finding zero anagrams is not an error.
-l Print list of candidate words before anagramming. This is the
list of words that can be spelled with the letters from the
specified string, with no letters being used more often that
they appear in the input string.
-x Do not perform anagramming. Use with l if you just want the
candidate word list without anagrams.
-a Allow anagrams containing two or more occurrences of a word.
-v Consider strings with no vowels as candidate words and do not
give up when there are no vowels remaining after extractions.
-m Limit candidate word length to a maximum number of letters.
Follow by an integer. m12 means limit words to 12 letters. m5
means limit them to 5 letters.
-n Limit candidate word length to a minimum number of letters.
Follow by an integer. n2 means limit words to 2 letters. n11
means limit them to 11 letters.
-d Limit number of words in anagrams to a maximum number. Follow
by an integer. d3 means no anagrams should contain more than 3
words. d12 means limit anagrams to 12 words. This is currently
the option that I recommend to limit output, since an
optimization has been added to speed execution in some cases
when this option is used.
-w Specify a word which should appear in all anagrams. This is
useful if you already have a word in mind that you want in the
anagrams. This option should be specified at the end of the
command, followed by a space and the word to use.
-f Specify which word list to use. See example! This option
should be specified at the end of the command, followed by a
space and the alternate wordfile name. This is useful if you
have other word lists to try or if you are interested in making
your own customized word list. New feature: Use a hyphen as
the filename if the wordlist should be read from stdin.
EXAMPLES
wordplay persiangulf
Anagram the string "persiangulf" .
wordplay anagramming -lx
Print the list of words from the wordlist that can be spelled by
using the letters from the word "anagramming". A letter may not
be used more often than the number of times it occurs in the
word "anagramming". No anagrams are generated.
wordplay tomservocrow -n3m8
Anagram the string "tomservocrow" . Do not use words shorter
than 3 letters or longer than 8 letters.
wordplay persiangulf -ld3m10 -f /usr/share/dict/words
Print the candidate words for the string "persiangulf". Print
anagrams containing up to 3 words, without considering any words
longer than 10 characters. Use the file "/usr/share/dict/words"
rather than "words721.txt".
wordplay soylentgreen -n3w stolen -f w2
Print anagrams of "soylentgreen" containing the word "stolen"
and use the file "w2" as the wordlist file. Discard candidate
words shorter than 3 characters.
wordplay university -slx
Print the candidate word list for the string "university". The
output will consist of just the words. This output is more
useful for redirecting to a file or for piping to another
program.
wordplay trymeout -s
Anagram the string "trymeout" and print the anagrams with no
line numbers. The header will not be printed. This is useful
for piping the output to another process (or saving it to a file
to be used by another program) without having to parse the
output to remove the numbers and header.
wordplay trymeout -v
Anagram "trymeout" as usual, but in case vowel-free strings are
in the wordlist, consider them as possible candidate words.
cat wordlist1 wordlist2 wordlist3 | sort -u | wordplay trymeout -f -
Anagram "trymeout" and read the wordlist from stdin, so that, in
this case, the three wordlists "wordlist1", "wordlist2", and
"wordlist3" will be concatenated and piped into wordplay as the
wordlist. The "sort -u" is there to remove duplicate words from
the combined wordlist.
NOTES
If the option specifiers are combined, as in "an7m7d5f" or "d3n5f", the
f should come last, followed by a space and the word list file.
The "w" option is used in the same manner.
Limit the number of words to consider, if desired, using the n and m
options, or better yet, use the d option to limit depth, when
anagramming certain time-consuming strings. The program is currently
optimized to speed execution in some cases when the d option is used.
It is highly recommended that the "words721.txt" file distributed with
the program be used, since many nonsense two and three-letter
combinations that are not words have been eliminated. This makes the
quality of the output slightly better and speeds execution of the
program a slight bit. Any word list may be used, as long as there is
one word per line. Feel free to create your own custom word list and
use it instead. The word list does not have to be sorted in any
particular way.
FILES
/usr/share/games/wordplay/words721.txt
Default word list file.
DISTRIBUTION
This program was written for fun and is free. Distribute it as you
please, but please distribute the entire package, with the original
words721.txt and the readme file. If you modify the code, please
mention my name in it as the original author. Please send me a copy of
improvements you make, because I may include them in a future version.
AUTHOR
Wordplay was written by Evans A Criswell <criswell@cs.uah.edu>
This man page was written by Joey Hess <joeyh@debian.org>
DECEMBER 1996 FOO(1)