开发者

Searching code files for a particular string

Im using Ubuntu Karmic as my operating system . I frequently need to search my project folder for a particular string, to see if its there in any 开发者_如何转开发of the files in the project folder or its subfolders. I currently use the find command to do that, and have written a script that accepts the string im looking for as the parameter.

find . -exec grep -l $1 {} \;

But the problem with this is that it does not work with strings having a space in them. So, is there any way to search for space separated strings as well, or is there any available tool that does the job ?

Thank You.


How are you invoking your script?

If you want to search for space separated strings you need to do the
invocation in the form:

%./script_name.sh 'search string'

and also change the find invocation to :

find . -exec grep -l "$1" {} \;


A better version of that command is simply grep -rl "$1" ., or possibly grep -rl "$*" ..

If your string contains the correct amount of space, and the problem is simply the shell parsing the arguments, then you can refer to every arg with "$*" and you can prevent the shell from breaking at word boundaries (but still allow parameter expansion) by using the soft double-quotes.


grep -R "phrase with spaces" /folder/folder


find / -type d -name "folder name" 2> /dev/null


I believe you may simply do grep -lR ${1} . to achieve what you need.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜