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>