2013-03-05 72 views

回答

2

试试这个,如果它给你想要的东西:

grep -rl "string" **/* 
+0

如何接受来自命令行的输入? – user2115365 2013-03-05 13:04:41

+0

你有什么输入?文件名?或一堆文字?您想做什么?在问你想要做递归grep和列出文件名,现在它被改变或没有? – Kent 2013-03-05 13:06:53

+0

输入一个字符串和脚本必须经过一个文件夹,如果你有'S = string'然后'的grep -rl显示包含字符串 – user2115365 2013-03-05 13:08:42

0

基本例如:

#!/bin/sh 

STRING=$1 
DIR=$2 

find $DIR -type f -exec grep -l $STRING {} \; 

固定,以处理空格等被留下来作为学生的exercize。

我命名脚本“findfile.sh”,并与第一个参数运行=查找的字符串,第二=目录看起来像这样:

[[email protected]:tmp]$ ./findstring.sh lyskom /home/jenny/src/elisp 
/home/jenny/src/elisp/lyskom-elisp-client-all-0.48/README 
/home/jenny/src/elisp/lyskom-elisp-client-all-0.48/lyskom-all-0.48.el 
/home/jenny/src/elisp/lyskom-elisp-client-all-0.48/lyskom-all-0.48.elc 
/home/jenny/src/elisp/lyskom-elisp-client-all-0.48/NEWS-0.48 
/home/jenny/src/elisp/lyskom-all-0.48.elc 
/home/jenny/src/elisp/lyskom-swedish-0.48.elc 
/home/jenny/src/elisp/lyskom.elc 

正如你可以看到它名单包含在目录/ home /珍妮/ src目录/ elisp的/及其子目录单词“lyskom”每FIL。

+0

我如何使用脚本? – user2115365 2013-03-05 13:07:50

+0

哎呀,对不起。添加该信息。 – 2013-03-05 13:09:13

+0

@ user2115365'的MyScript“搜索字符串”/tmp'会列出所有文件在/ tmp目录(和子目录)包含“搜索字符串” – 2013-03-05 13:09:59

0

这个shell脚本显示所有包含指定字符串

#!/bin/bash 
grep -l "$1" * 

的文件,您可以将其保存为find_util.sh做

chmod a+x find_util.sh 

./find_util.sh search 

,如果你想它来搜索子目录,你也可以将其更改为

#!/bin/bash 
grep -lr "$1" * 
+0

感谢保罗的R用固定格式 – 2013-03-05 13:01:12

相关问题