for awk experts only.
Polytropon
freebsd at edvax.de
Sat Nov 29 23:07:25 PST 2008
On Sat, 29 Nov 2008 22:52:10 -0800, Gary Kline <kline at thought.org> wrote:
> What you have above prints:
>
> foot 1 // noun
> foot 0 // verb
>
> so doesn't work entirely, but is a good start.
I'm so stupid. gsub() does not return the result of the
substitution (as, for example, sprintf() would return the
string), but the success of the substitution, 1 or 0.
> (BTW, man gsub turned up
> nothing, so I'm assuming thhat gsub it part of awk.
Yes, gsub is listed in "man awk" because it's a function from
within awk.
I've just pkg_add'ed -r WordNet and tried:
% wn foot -over | awk '/Overview/ { printf("%s %s\n", $4, ($3 == "noun") ? "n." : ""); }'
foot n.
foot
Of couse, this handles only "noun". If you want to abbreviate
other kinds of words (e. g. "verb" -> "v.", "adverb" -> "adv.",
"adjective" -> "adj."), it would be better to implement a short
awk script as a "wrapper" for the wn command. If you're only
interested in the first result mentioned, you could test NR == 1.
% wn foot -over | awk '/Overview/ && (NR == 2) { printf("%s %s\n", $4, ($3 == "noun") ? "n." : ""); }'
foot n.
--
Polytropon
>From Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
More information about the freebsd-questions
mailing list