2005-03-10

grep+find的使用

以前在一个目录下查找某个字符串总是搭配find+grep来使用,如:
写个简单脚本mygrep.sh包括下面内容

find $1 -type f -exec grep -s $2 {} ; -print

要查找muster时,执行 mygrep.sh . "muster" 即可。




不过新版本的grep其实已经支持递归的查找。
今天在查找一个字符串时,仔细阅读了一下grep的man page,发现grep其实有一个选项 -r( -R,
--recursive)是可以在一个目录里递归查找的,另外一个等价的选项是 -d或者-D。另外发现一个比较有用的选项是 -l
,只输出匹配的文件,而不输出查找的字符串。这对与查找到的匹配项比较多时比较适用,避免了太多的输出,简洁明了。另外一个有用的选项是:
--colour,可以有always,auto和never,设置成
--colour=always可以高亮显示搜索结果。

这样比较常用的组合为: grep -lrs "muster" path

没有评论:

发表评论