for awk experts only.

Gary Kline kline at thought.org
Sat Nov 29 23:59:05 PST 2008


On Sun, Nov 30, 2008 at 08:07:21AM +0100, Polytropon wrote:
> 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.
> 

	Yeah, "noun" -> "n.", "verb" -> "v.", "adj." -> "a."  "adv" is all right.
	Benn awhile since I wrote an awk script... but now's the time.

	thanks much,

	gary


> 
> 
> -- 
> Polytropon
> From Magdeburg, Germany
> Happy FreeBSD user since 4.0
> Andra moi ennepe, Mousa, ...

-- 
 Gary Kline  kline at thought.org  http://www.thought.org  Public Service Unix
        http://jottings.thought.org   http://transfinite.thought.org




More information about the freebsd-questions mailing list