Solved

How to do search - linux

Posted on 2001-06-20
12
447 Views
Last Modified: 2010-04-20
Hi..
 How to do a search for a particular string inside a file in linux.The difficulty is that i want search all the subfolders of the current directory from which i am doing the search.
pls help
Tony
0
Comment
Question by:tonyva
  • 4
  • 3
  • 2
  • +3
12 Comments
 
LVL 4

Expert Comment

by:tbearden
Comment Utility
the command you want is grep

to search for the string test in the current directory you would do:

grep -r test .

Don't forget the period at the end.
0
 

Author Comment

by:tonyva
Comment Utility
Thanks ...
i am using "grep test *c" for searching for test in current directory. But how can i search all sub folders also like this from my current directory ?
Hope u can help me in this
Tony
0
 
LVL 4

Expert Comment

by:tbearden
Comment Utility
that is what the -r is for.  It tells it to search recursivly from where you are.
0
 

Author Comment

by:tonyva
Comment Utility
it is not working here... giving error... I am trying this in LynxOS.
0
 
LVL 4

Expert Comment

by:tbearden
Comment Utility
try doing a grep --help and look for a recursive option.
0
 

Expert Comment

by:woregul
Comment Utility
Have you tried the following?

    grep -R test .

If that does not work, try this:

    find . -type f -exec grep test '{}' ';'

or for a file pattern

    find . -type f -name '*c' -exec grep test '{}' ';'

0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 1

Expert Comment

by:vreddypatil
Comment Utility
try this
Lynx# grep -i "test" */*

--Vijayapal
0
 

Author Comment

by:tonyva
Comment Utility
hi
 the "find ..... " is not working . Some help is that from grep -i -l "test" */*   But that search only one set below the dirctory structure. It is not going in recursively.
Hope some one can give a better option that can work in Lynx
Tony
 
0
 

Expert Comment

by:diamond1
Comment Utility
try this:

grep -r "string" */*

or

grep -d recurse "string" */*

Check out the man pages for more information on the options available with grep
0
 
LVL 5

Accepted Solution

by:
garboua earned 100 total points
Comment Utility
to include all the subfolders use this
find ./ -name "nameofFiles" |xargs grep string
find will look under "./" which is your current directory, if you would like to specify another , it is okay too.
-name is the name of files you are looking for and it takes wild cards, you can say -name "*" for all files or -name "ma?ile*.c*" for all files that begin wil "ma" folloed by a single character then "ile" punch of character and the extention is of type that begins with c
xargs will pipe the output and run them through grep the output will be like
firstfile: something soemthing yourstring something

so
find /etc -name "pass*" |xargs grep myname
will produce
passwd: myname:50:23:7(*^&%:  etc etc
0
 

Author Comment

by:tonyva
Comment Utility
Wow.... Yes. This works very well  and this was what i wanted .Thank u for the answer and the explanation along with, which help me to understand it very well.
Thank u garboua
Tony
 

 
0
 
LVL 5

Expert Comment

by:garboua
Comment Utility
:-), to learn more type "man find"  to learn how to use find in conj with other command such as "rm" "tar" "cp" "mv" and all other commands.  in Linux, Unix, find is your best friend
0

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

After running Ubuntu some time, you will be asked to download updates for fixing bugs and security updates. All the packages you download replace the previous ones, except for the kernel, also called "linux-image". This is due to the fact that w…
1. Introduction As many people are interested in Linux but not as many are interested or knowledgeable (enough) to install Linux on their system, here is a safe way to try out Linux on your existing (Windows) system. The idea is that you insta…
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now