Solved

How to do search - linux

Posted on 2001-06-20
12
455 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
  • 2
  • +3
12 Comments
 
LVL 4

Expert Comment

by:tbearden
ID: 6212631
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
ID: 6212658
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
ID: 6212784
that is what the -r is for.  It tells it to search recursivly from where you are.
0
Why Off-Site Backups Are The Only Way To Go

You are probably backing up your data—but how and where? Ransomware is on the rise and there are variants that specifically target backups. Read on to discover why off-site is the way to go.

 

Author Comment

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

Expert Comment

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

Expert Comment

by:woregul
ID: 6220025
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
 
LVL 1

Expert Comment

by:vreddypatil
ID: 6232363
try this
Lynx# grep -i "test" */*

--Vijayapal
0
 

Author Comment

by:tonyva
ID: 6233449
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
ID: 6239524
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
ID: 6244520
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
ID: 6247092
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
ID: 6249188
:-), 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

Free learning courses: Active Directory Deep Dive

Get a firm grasp on your IT environment when you learn Active Directory best practices with Veeam! Watch all, or choose any amount, of this three-part webinar series to improve your skills. From the basics to virtualization and backup, we got you covered.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Linux users are sometimes dumbfounded by the severe lack of documentation on a topic. Sometimes, the documentation is copious, but other times, you end up with some obscure "it varies depending on your distribution" over and over when searching for …
In the first part of this tutorial we will cover the prerequisites for installing SQL Server vNext on Linux.
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
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…
Suggested Courses

617 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