LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1628|回复: 11

如何在一个目录下的所有文件(包括子目录)中查找一个字符串[基本解决]

[复制链接]
发表于 2004-3-31 21:45:17 | 显示全部楼层 |阅读模式
如题,请教大虾
发表于 2004-3-31 21:51:09 | 显示全部楼层

回复: 如何在一个目录下的所有文件(包括子目录)中查找一个字符串

最初由 hlh771 发表
如题,请教大虾

方法一:
find -maxdepth 1 -type f -exec grep <search string> {} \;

方法二:
如果你想在查找后进行替换,那这种方法就最合适不过了,我在这里又要卖emacs的广告了,:cool:

GNU emacs的find-dired模式以及"Q"操作。
1. 选择你要进行find的"根目录"
M-x find-dired        
2. 选取普通文本文件,因为只有对这种文件进行查找才有意义嘛
-maxdepth 1 -type f                  
3. 选取文件
%m                        
4. 选取所有文件
^                           
5. dired-do-query-replace函数。
当然,如果你只想查找而不想替换,那么在找到的每个文件位置按"n"跳过就是了。
Q                           

发表于 2004-3-31 23:35:57 | 显示全部楼层

回复: 回复: 如何在一个目录下的所有文件(包括子目录)中查找一个字符串

最初由 home_king 发表
方法一:
find -type f -exec grep <search string> {} \;

方法二:
如果你想在查找后进行替换,那这种方法就最合适不过了,我在这里又要卖emacs的广告了,:cool:

GNU emacs的find-dired模式以及"Q"操作。
1. 选择你要进行find的"根目录"
M-x find-dired        
2. 选取普通文本文件,因为只有对这种文件进行查找才有意义嘛
-type f                  
3. 选取文件
%m                        
4. 选取所有文件
^                           
5. dired-do-query-replace函数。
当然,如果你只想查找而不想替换,那么在找到的每个文件位置按"n"跳过就是了。
Q                           


顶啊,强烈推荐GNU EMACS & XEmacs:p
发表于 2004-4-1 12:43:34 | 显示全部楼层
修正了一下,限定只递归到本目录,请看二楼帖。
发表于 2004-4-1 21:38:35 | 显示全部楼层
grep -r
发表于 2004-4-1 22:20:46 | 显示全部楼层
最初由 BBDD 发表
grep -r

好,原来还有这个选项,在下孤陋寡闻了,呵呵。

补充一下用法:
-r选项:递归给出的目录结构的所有文件进行grep
grep -r <search string> <dir>
发表于 2004-4-2 14:55:50 | 显示全部楼层
grep的方法有点缺陷,就是不能指定递归深度。还是用find命令比较好。:cool:
发表于 2004-4-2 15:16:58 | 显示全部楼层
当然,find用于对文件名进行搜索,而grep是对文件的内容搜索,用grep可以和ls的-R来结合,不过效果还是没有用find好~
发表于 2004-4-2 18:27:09 | 显示全部楼层
xemacs有没有windows版?我的linux没有装图形界面。
发表于 2004-4-2 18:29:25 | 显示全部楼层
最初由 cozo 发表
xemacs有没有windows版?我的linux没有装图形界面。

GNU Emacs不需要X的支持啊,可以运行在字符界面下,而且不依赖终端呢。
还是用GNU Emacs吧,它是最正统的版本,而且开源。
xemacs当然有windows版本啦。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表