我使用Ubuntu Karmic作为我的操作系统。我经常需要在我的项目文件夹中搜索特定字符串,以查看它是否存在于项目文件夹或其子文件夹中的任何文件中。 我目前使用find命令执行此操作,并编写了一个脚本,该脚本接受字符串im作为参数。
find . -exec grep -l $1 {} \;
但问题是它不适用于其中有空格的字符串。那么,有没有办法搜索空格分隔的字符串,或者有没有可用的工具来完成这项工作?
谢谢。
答案 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