LinuxQuestions.org
Review your favorite Linux distribution.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie
User Name
Password
Linux - Newbie This Linux forum is for members that are new to Linux.
Just starting out and have a question? If it is not in the man pages or the how-to's this is the place!

Notices

Reply
 
Search this Thread
Old 01-29-2010, 11:51 AM   #1
niteshadw
Member
 
Registered: Sep 2002
Distribution: CentOS
Posts: 161

Rep: Reputation: 15
fastest way to search for strings


Is there a faster way to search for a file containing a given string than using grep -re "string" /

This takes a long time to search through the entire system, so I was wondering if there is a faster way. I don't know the name of the file, just that it will contain a given string.

Thanks!
 
Old 01-29-2010, 01:45 PM   #2
PTrenholme
Senior Member
 
Registered: Dec 2004
Location: Olympia, WA, USA
Distribution: Fedora, (K)Ubuntu
Posts: 4,147

Rep: Reputation: 330Reputation: 330Reputation: 330Reputation: 330
Look at the find command (info find) and the locate command (info locate). The locate is faster since it uses the data base of file names and locations so it doesn't have to read the drive for file names. On the other hand, find lets you filter the files by type, so you could limit the searching to files that, for example, are not executable or that were in system directories.

In fact, running grep -ar <expession> / may cause an infinite wait since it will eventually search /dev/null or /dev/random, and those (pseudo) files are infinitely long.
 
Old 01-29-2010, 06:39 PM   #3
niteshadw
Member
 
Registered: Sep 2002
Distribution: CentOS
Posts: 161

Original Poster
Rep: Reputation: 15
Quote:
Originally Posted by PTrenholme View Post
Look at the find command (info find) and the locate command (info locate). The locate is faster since it uses the data base of file names and locations so it doesn't have to read the drive for file names. On the other hand, find lets you filter the files by type, so you could limit the searching to files that, for example, are not executable or that were in system directories.

In fact, running grep -ar <expession> / may cause an infinite wait since it will eventually search /dev/null or /dev/random, and those (pseudo) files are infinitely long.
Thanks for the reply, but as far as I know, locate and find only search by file name, not the contents of the file? I don't know the name of the file or type, just that it contains a certain string on the inside...
 
Old 01-29-2010, 10:08 PM   #4
worm5252
Member
 
Registered: Oct 2004
Location: Atlanta
Distribution: CentOS, RHEL, HP-UX
Posts: 565

Rep: Reputation: 57
grep searches the contents of a file. Try typing man grep

Quote:
NAME
grep, egrep, fgrep, rgrep - print lines matching a pattern
 
Old 01-30-2010, 06:24 AM   #5
dv502
Member
 
Registered: Sep 2006
Location: USA - NYC
Distribution: Whatever icon you see!
Posts: 642

Rep: Reputation: 57
There is a program called Ack and it's design to do fast searches on large content files.

I heard about this program on http://fosscasts.com/screencasts

Scroll down to episode #15 Power Searching with Ack and and watch the video tutorial on its usages.

-Cheers

Last edited by dv502; 01-30-2010 at 06:30 AM.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Search and replace strings in text files in C Completely Clueless Programming 5 09-15-2009 06:51 PM
Need to search all files for string - strings command? jmur Programming 4 03-28-2008 02:35 PM
Grep search & replace strings with backslashes? ziphem Linux - Newbie 4 10-21-2007 04:36 PM
How to search for text strings? armandino LQ Suggestions & Feedback 2 06-24-2007 07:51 PM
Search and Replace with multiple-line strings ChristianNerds.com Programming 4 08-21-2005 02:32 PM


All times are GMT -5. The time now is 09:29 AM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration