搜索特定字符串的代码文件

时间:2009-12-07 06:10:02

标签: unix search ubuntu

我使用Ubuntu Karmic作为我的操作系统。我经常需要在我的项目文件夹中搜索特定字符串,以查看它是否存在于项目文件夹或其子文件夹中的任何文件中。 我目前使用find命令执行此操作,并编写了一个脚本,该脚本接受字符串im作为参数。

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

但问题是它不适用于其中有空格的字符串。那么,有没有办法搜索空格分隔的字符串,或者有没有可用的工具来完成这项工作?

谢谢。

5 个答案:

答案 0 :(得分:1)

该命令的更好版本只是grep -rl "$1" .,或者可能是grep -rl "$*" .

如果你的字符串包含正确的空间量,问题只是解析参数的shell,那么你可以用"$*"引用每个arg,你可以防止shell在字边界处断开(但是仍然允许参数扩展)使用 soft 双引号。

答案 1 :(得分:1)

你是如何调用脚本的?

如果要搜索空格分隔的字符串,则需要执行
调用形式:

%./script_name.sh 'search string'

并将查找调用更改为:

找到。 -exec grep -l“$ 1”{} \;

答案 2 :(得分:0)

我相信你可能只是grep -lR ${1} .来实现你所需要的。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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