On 3/15/12 3:38 PM, Richard Neill wrote:
> Dear Bob,
> 
> Thanks for your explanation. I do understand what is going on and why. But
> my point was that compgen has an implicit internal "grep" that is much less
> efficient than actual grep. Why is the performance of compgen's
> sorting/filtering algorithm so much worse than grep's ?
> Both of them start with a large list, and filter it to a small one.

Only by the most general of similarities.  In the first case, bash reads
300K through a pipe and stores it into a large string.  It then splits
the string into 50,000 words, expands each word using the shell word
expansions, then tests the expanded words for matches against a
particular string.  Grep reads a series of very short lines from stdin,
a line at a time, and matches each against a regexp.

Chet

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    c...@case.edu    http://cnswww.cns.cwru.edu/~chet/

Reply via email to