From owner-freebsd-questions Fri Dec 28 9: 9:38 2001 Delivered-To: freebsd-questions@freebsd.org Received: from mobil.cz (diana.mobil.cz [195.39.16.12]) by hub.freebsd.org (Postfix) with ESMTP id 262E637B417 for ; Fri, 28 Dec 2001 09:09:30 -0800 (PST) Received: from ester.mobil.cz (ester.mobil.cz [194.213.62.23]) by mobil.cz (8.11.6/8.11.0) with ESMTP id fBSH9Sf26429; Fri, 28 Dec 2001 18:09:28 +0100 Received: from roman.mobil.cz ([10.2.0.89]) by ester.mobil.cz (Lotus Domino Release 5.0.7) with ESMTP id 2001122818075355:3998 ; Fri, 28 Dec 2001 18:07:53 +0100 Received: (from roman@localhost) by roman.mobil.cz (8.11.6/8.11.6) id fBSHIGR07588; Fri, 28 Dec 2001 18:18:16 +0100 (CET) (envelope-from neuhauser@mobil.cz) X-Authentication-Warning: roman.mobil.cz: roman set sender to neuhauser@mobil.cz using -f Date: Fri, 28 Dec 2001 18:18:15 +0100 From: Roman Neuhauser To: smorton@acm.org Cc: FreeBSD Questions Subject: Re: [Fwd: Re: How To Recursively Search Directory For Text String In Files?] Message-ID: <20011228181815.S476@roman.mobil.cz> Mail-Followup-To: smorton@acm.org, FreeBSD Questions References: <3C2C98D6.2080103@verizon.net> Mime-Version: 1.0 In-Reply-To: <3C2C98D6.2080103@verizon.net> User-Agent: Mutt/1.3.23i X-MIMETrack: Itemize by SMTP Server on ester/Mobil(Release 5.0.7 |March 21, 2001) at 12/28/2001 06:07:53 PM, Serialize by Router on ester/Mobil(Release 5.0.7 |March 21, 2001) at 12/28/2001 06:08:00 PM, Serialize complete at 12/28/2001 06:08:00 PM Content-Type: text/plain; charset=us-ascii Content-Disposition: inline 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 > Date: Fri, 28 Dec 2001 11:07:50 -0500 > From: Simon Morton > To: FreeBSD Questions > Subject: [Fwd: Re: How To Recursively Search Directory For Text String In Files?] > > Roman Neuhauser wrote:>>From: "Drew Tomlinson" > >>To: > >>Subject: How To Recursively Search Directory For Text String In Files? > >>Date: Thu, 27 Dec 2001 14:19:42 -0800 > >> > >>OK, I am beginning to understand the power of FBSD and am sure this is > >>possible. I just don't know how to do it. What I want to do is search > >>all files in my current directory and all the directories below it for a > >>text string and then know what file(s) contains the string. I > >>understand that grep will do the search but my knowledge is limited to > >>"cat file.txt | grep string". How can I construct a command in tcsh to > >>feed each file to cat and then feed it to grep *AND* know the name of > >>the file grep found the match? Do I have the right concept? Is there a > >>better way to accomplish my goal? > >> > > > > Hi there, > > > > the other suggestions are insanely complicated IMO. All you need is > > > grep -FIHnir pattern path > > ^^^^^^- recursive search > > ||||'-- case insensitive search > > |||'--- report the line number > > ||'---- report the file name > > |'----- ignore binary files > > '------ the pattern is a fixed string > > > grep -FIHnir freebsd ~/Mail > > > > > > That's the first time I have heard the Unix philosophy described > as "insanely complicated". The whole beauty of the Unix approach > is that you combine simple, specialized, commands together using > pipes in order to perform complex tasks right on the command line. > > Your solution is a dead end. What if you wanted to refine your > search to match only files with a certain extension or pattern in > the name? What if you wanted to match only files which had been > modified within a certain period of time? What if you wanted to > delete or perform some other action on matching files? Are you > going to add keep adding more options to grep? > > That way lies the insane complexity, my friend. I think you should pay a wee bit more attention to what you read: "What I want to do is search all files in my current directory and all the directories below it for a text string and then know what file(s) contains the string." Simple task, simple solution. I don't know what good would the original poster achieve by using find, xargs and grep where simple grep does the work. Of course, it's easy to get carried away, but one should discriminate between use and abuse. -- FreeBSD 4.4-STABLE 6:12PM up 2 days, 4:50, 11 users, load averages: 0.02, 0.05, 0.01 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message