Extended experiment with command line dictionary
After my old experiments with dictionary server protocol linux rfc 2229 i just wanted to try getting a mammoth list of synonyms for list of any give list, let logic behind it was pretty simple, but the pleasure that it gave was ultimate.
First off we need to install dict DICT Protocol Client. For a Debian based OS, its just sudo apt-get install dict.[ Read more ]
Now lets see the similar one liner that will make the magic happen, it's just a simple cocktail of dict and awk
Here are the ingredients :
0. dict.
1. A list of words. [ Its called wordList here ]
2. awk.
After baking we get another big list of synonyms, for each word in the list
Code
for word in $(cat wordList);
do dict $word | \
awk 'BEGIN {Word=$word} /Word/,0' \
>> synonyms;
done
Dismantling the code:
The loop and the dict command are straight forward, the only nut for us to crack is the awk part of the code.
It begins with a defining a variable called Word, which is each word looped at a time from the wordList file.
Next, we see the /Word/,0 which is nothing but the awk built-in support for range expressions prints lines from /beginpat/ to /endpat/, inclusive here every pattern matching the "Word" in the output of the dict command is matched and is redirected (>) to a file called "synonyms".
Thus we end up with the fully baked file ready to eat, enjoy and do share your recipes here.
Recent blog posts
- watir-webdriver web inspector
- gem list to gemfile
- Packing ruby2.0 on debian.
- Made it into The Guinness Book!
- to_h in ruby 2.0
- Filter elements by pattern jQuery.
- Better HTML password fields for mobile ?
- Grayscale image when user offline
- nth-child CSS pseudo-class Christmas colors
- EventEmitter in nodejs