Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Oct 1999 00:13:58 +0900
From:      "Teddy" <tfuruya@ppp142140.asahi-net.or.jp>
To:        "Brian Beattie" <beattie@aracnet.com>
Cc:        <n@nectar.com>, <zzhang@cs.binghamton.edu>, <freebsd-hackers@freebsd.org>, <nectar@nectar.com>
Subject:   RE: Search a symbol in the source tree 
Message-ID:  <000201bf1a45$7952d340$0533a8c0@dilemma.tf.or.jp>

next in thread | raw e-mail | index | archive | help
Thank you for your mail !
At last, the final resolution has arrived !
Your answer is very very elegant and splendid !

-----Original Message-----
差出人 : Brian Beattie <beattie@aracnet.com>
宛先 : Tetsuro Teddy FURUYA <ht5t-fry@asahi-net.or.jp>
CC : n@nectar.com <n@nectar.com>; zzhang@cs.binghamton.edu
<zzhang@cs.binghamton.edu>; freebsd-hackers@freebsd.org
<freebsd-hackers@freebsd.org>; nectar@nectar.com <nectar@nectar.com>
日時 : 1999年10月19日 1:51
件名 : Re: Search a symbol in the source tree


>On Mon, 18 Oct 1999, Tetsuro Teddy FURUYA wrote:
>
>> From: Jacques Vidrine <n@nectar.com>
>> Subject: Re: Search a symbol in the source tree
>> Date: Sun, 17 Oct 1999 11:37:11 -0500
>> n> On 18 October 1999 at 0:39, Tetsuro Teddy FURUYA
(=?iso-2022-jp?B?GyRCOEVDKxsoQiAbJEJFL086GyhC?=) <ht5t-fry@asahi-net.or.jp>
wrote:
>> n> > It seems queer to me that there has been none who has refered to
>> n> > find - exec
>> n> > pairs.
>> n> >
>> n> > You may type into shell like;
>> n> > $find . -name "*.c" -print -exec "egrep" "-i" "idt" {} \; | less
>> n> > Here , "idt" is a search string.
>> n>
>> n> That's because no one wants a separate invocation of egrep for
>> n> every file!
>>                   ^^^^^^
>> Probably, except me !
>>
>> But, what various and interesting methods to search symbols there are !
>>
>> If we do not restrict the usage of search method, there might be
>> yet another methods.
>
>I frequently use find - grep when looking at a novel source tree.  The one
>problem with the solution given is that if you are looking for a few
>instances in hundreds of files, the hits can scroll off the screen and get
>lost in the noise.   My prefered approach is:
>find . -name "*.[c]" -exec grep string {} /dev/null \;


Your idea to make grep read the dummy file /dev/null as multiple files read
is
elegant and splendid !
Finally, find with -exec option outputs the same listing as grep with -R
option and
find - xargs pipeline.

I have tried the bench mark test.

#Script started on Tue Oct 19 23:00:15 1999
#sh-2.02$  time find /usr/src/sys -name "*" -and -exec grep "-ia" idt {}
 \; -print > /dev/null
#real 1m14.920s
#user 0m16.454s
#sys 0m20.259s
#
#sh-2.02$ time find /usr/src/sys -name "*" -exec grep "-ia" idt {} /dev/null
\; > /dev/null
#real 1m16.742s
#user 0m16.289s
#sys 0m20.449s
#
#sh-2.02$ time find /usr/src/sys -name "*" | xargs grep "-ia" idt >
/dev/null
#real 0m44.862s
#user 0m0.989s
#sys 0m1.669s
#sh-2.02$ exit
#exit
#Script done on Tue Oct 19 23:16:04 1999

From this result, xargs is faster as it is predicted.
And the comsumed time to read /dev/null file is unexpectedly short.


>
>(the /dev/null forces grep to print the filename where a match is found,
>and I am an old fogey, learned grep before [ef]grep too lazy to learn
>better, should probably use fgrep)
>
>What I'd really like to see is a free implementation of cscope.
>
>Brian Beattie            | The only problem with
>beattie@aracnet.com      | winning the rat race ...
>www.aracnet.com/~beattie | in the end you're still a rat


Teddy Furuya <ht5t-fry@asahi-net.or.jp>




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?000201bf1a45$7952d340$0533a8c0>