From owner-freebsd-questions Thu Dec 27 16:17: 4 2001 Delivered-To: freebsd-questions@freebsd.org Received: from out002pub.verizon.net (out002pub.verizon.net [206.46.170.102]) by hub.freebsd.org (Postfix) with ESMTP id AEFCE37B41A for ; Thu, 27 Dec 2001 16:16:24 -0800 (PST) Received: from verizon.net (pool-141-154-55-106.bos.east.verizon.net [141.154.55.106]) by out002pub.verizon.net with ESMTP ; id fBS0G8d26003 Thu, 27 Dec 2001 18:16:09 -0600 (CST) Message-ID: <3C2BB845.7070508@verizon.net> Date: Thu, 27 Dec 2001 19:09:41 -0500 From: Simon Morton Reply-To: smorton@acm.org User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.7) Gecko/20011221 X-Accept-Language: en,pdf,zh-CN,de-DE,zh-TW,zh, zh- MIME-Version: 1.0 To: Drew Tomlinson Cc: Joe Clarke , questions@FreeBSD.ORG Subject: Re: How To Recursively Search Directory For Text String In Files? References: <20011227172121.Q11529-100000@shumai.marcuscom.com> <014501c18f26$9d430970$c42a6ba5@lc.ca.gov> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG That won't quite do it if you want only the names of matching files. The following will do it for you without xargs: find -type f [-name {} \; which is almost the same as find -type f [-name {} \; -print grep -l prints out just the name of any file containing the pattern. grep -q prints nothing but returns 0 for matching files -exec is a conditional operator; if the command called by -exec returns 0, -exec returns TRUE. This can be useful if you wanted an action other than -print, say -delete for example. HTH Simon Drew Tomlinson wrote: >>> >>You can do grep -r *, but I prefer: >> >>find -type f -name | xargs >> > grep > >> >> > > Thank you very much! I *knew* it had to be possible but had not come > across xargs yet. It looks like a very powerful tool that will have a > lot of uses! > > Drew > > >>For example: >> >>find /usr/ports -type f -name Makefile | xargs grep -i snmp >> >>This would search all Makefiles found anywhere in the /usr/ports tree >> > and > >>grep case-insensitvely through them for the pattern "snmp". >> >>Joe >> >> >>>Thanks, >>> >>>Drew >>> >>> >>>To Unsubscribe: send mail to majordomo@FreeBSD.org >>>with "unsubscribe freebsd-questions" in the body of the message >>> >>> >>> >> >>To Unsubscribe: send mail to majordomo@FreeBSD.org >>with "unsubscribe freebsd-questions" in the body of the message >> >> >> > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-questions" in the body of the message > > -- http://www.SimonMorton.com smorton at acm dot org \rm -rf /bin/laden To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message