当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 10 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : grep如何递归目录并在指定类型文件中查找?[已解决]
帖子发表于 : 2009-04-09 21:59 

注册: 2005-05-06 0:46
帖子: 39
送出感谢: 0 次
接收感谢: 0 次
grep -r “hello” ./查找是递归在当前目录及其子目录下任何文件中查找hello
如果想指定在当前目录及其子目录下的c文件中查找hello应该如果执行命令?
grep -r "hello" *.c会提示*.c文件不存在


最后由 beyond93 编辑于 2009-04-13 23:05,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: grep如何递归目录并在指定类型文件中查找?
帖子发表于 : 2009-04-09 22:11 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
代码:
find . -iname "*.c" -exec grep "hello" {} \;


页首
 用户资料  
 
3 楼 
 文章标题 : Re: grep如何递归目录并在指定类型文件中查找?
帖子发表于 : 2009-04-09 22:36 

注册: 2005-05-06 0:46
帖子: 39
送出感谢: 0 次
接收感谢: 0 次
非常感谢!
在vim有没有插件可以很方便完成这个事情?
grep.vim和easygrep.vim都不行。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: grep如何递归目录并在指定类型文件中查找?
帖子发表于 : 2009-04-10 15:20 

注册: 2007-10-27 1:04
帖子: 403
送出感谢: 0 次
接收感谢: 1
引用:
grep.vim和easygrep.vim都不行


你没有看help。

当前目录查找:

:Grep key_word *.c *.h

递归查找:

:Rgrep key_word *.c *.h


页首
 用户资料  
 
5 楼 
 文章标题 : Re: grep如何递归目录并在指定类型文件中查找?
帖子发表于 : 2009-04-10 19:44 

注册: 2005-05-06 0:46
帖子: 39
送出感谢: 0 次
接收感谢: 0 次
grep.vim在windows下Rgrep总是不行,Grep倒是可以,
不知道为啥,已经按照手册说的安装并设置windows版的findutils和grep,
使用cygwin倒是可以,但在cygwin下vim太慢了。
还是想用windows版的gvim(没有办法,在公司的是用windows)
不知道各位朋友知道如果折腾么?


页首
 用户资料  
 
6 楼 
 文章标题 : Re: grep如何递归目录并在指定类型文件中查找?
帖子发表于 : 2009-04-11 22:57 

注册: 2007-10-27 1:04
帖子: 403
送出感谢: 0 次
接收感谢: 1
已经设置了find,xargs,grep的路径了吧?

再在_vimrc中添加:

let Grep_Shell_Quote_Char = '"'

即可。windows下面比较诡异一点。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: grep如何递归目录并在指定类型文件中查找?
帖子发表于 : 2009-04-12 9:52 

注册: 2005-05-06 0:46
帖子: 39
送出感谢: 0 次
接收感谢: 0 次
sarrow 写道:
已经设置了find,xargs,grep的路径了吧?

再在_vimrc中添加:

let Grep_Shell_Quote_Char = '"'

即可。windows下面比较诡异一点。

还是不行,find,xargs,grep的路径都OK的,直接在console中都可以调用的。
按照你的的做法还是不行,能不能把你在windows下_vimrc中grep.vim的配置贴上来一下,谢谢!


页首
 用户资料  
 
8 楼 
 文章标题 : Re: grep如何递归目录并在指定类型文件中查找?
帖子发表于 : 2009-04-12 11:25 

注册: 2007-10-27 1:04
帖子: 403
送出感谢: 0 次
接收感谢: 1
引用:
还是不行,find,xargs,grep的路径都OK的,直接在console中都可以调用的。


你很强大。console里竟然能成功调用!

windows cmd内建了find指令,除非你给全find的绝对路径,不然调用的只能是cmd.find

附grep.vim相关设置:
if MySys() == 'windows'
let Grep_Path = 'C:\mingw\bin\grep.exe'
let Fgrep_Path = Grep_Path.' -F'
let Egrep_Path = Grep_Path.' -E'

let Grep_Find_Path = 'C:\mingw\bin\find.exe'
let Grep_Xargs_Path = 'C:\mingw\bin\xargs.exe'

let Grep_Default_Filelist = '*.c *.cpp *.hpp *.h'
let Grep_Shell_Quote_Char = '"'
endif

另,你的find,xargs,grep工具所在目录的路径包含空格否?——包含的话,请加上双引号再试试?

我这里是没有问题的。


页首
 用户资料  
 
9 楼 
 文章标题 : Re: grep如何递归目录并在指定类型文件中查找?
帖子发表于 : 2009-04-12 19:01 

注册: 2005-05-06 0:46
帖子: 39
送出感谢: 0 次
接收感谢: 0 次
sarrow 写道:
引用:
还是不行,find,xargs,grep的路径都OK的,直接在console中都可以调用的。


你很强大。console里竟然能成功调用!

windows cmd内建了find指令,除非你给全find的绝对路径,不然调用的只能是cmd.find

附grep.vim相关设置:
if MySys() == 'windows'
let Grep_Path = 'C:\mingw\bin\grep.exe'
let Fgrep_Path = Grep_Path.' -F'
let Egrep_Path = Grep_Path.' -E'

let Grep_Find_Path = 'C:\mingw\bin\find.exe'
let Grep_Xargs_Path = 'C:\mingw\bin\xargs.exe'

let Grep_Default_Filelist = '*.c *.cpp *.hpp *.h'
let Grep_Shell_Quote_Char = '"'
endif

另,你的find,xargs,grep工具所在目录的路径包含空格否?——包含的话,请加上双引号再试试?

我这里是没有问题的。

我是安装http://gnuwin32.sourceforge.net/packages/grep.htm
http://gnuwin32.sourceforge.net/packages/findutils.htm
这两个工具,_vimrc中是这样设置:
let Grep_Path = 'C:\GnuWin32\bin\grep.exe'
let Fgrep_Path = 'C:\GnuWin32\bin\fgrep.exe'
let Fgrep_Path = 'C:\GnuWin32\bin\fgrep.exe'
let Agrep_Path = 'C:\GnuWin32\bin\agrep.exe'
let Agrep_Path = 'C:\GnuWin32\bin\agrep.exe'
let Grep_Xargs_Path = 'C:\GnuWin32\bin\xargs.exe'
let Grep_Default_Options = '-rin'
let Grep_Shell_Quote_Char = '"'
nnoremap <silent> <F3> :Grep<CR>
nnoremap <silent> <F4> :Rgrep<CR>
你的mingw的bin中怎么有grep.exe,find.exe和xargs.exe?我安装了mingw后没有那些工具
谢谢!


页首
 用户资料  
 
10 楼 
 文章标题 : Re: grep如何递归目录并在指定类型文件中查找?
帖子发表于 : 2009-04-13 23:03 

注册: 2005-05-06 0:46
帖子: 39
送出感谢: 0 次
接收感谢: 0 次
终于找到问题了,我装了cygwin,设置了环境变量,这样在cmd中可以直接调用cygwin的工具,
结果就是对于GnuWin32里边的tool来说,不是纯windows cmd环境,对于grep.vim来说,
有不是纯粹的cygwin环境,结果就是Rgrep不能用。
现在把cygwin的环境变量干掉,同时使用windows版本的cscope和ctags即可
:em04


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 10 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译