LinuxSir.cn,穿越时空的Linuxsir!

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

我要实现这个功能该怎么做?

[复制链接]
发表于 2003-6-20 16:37:29 | 显示全部楼层 |阅读模式
我的家目录有一个Develop目录
1.我想将该目录下面的所有java文件选出
2.找到作者是我的文件(@author jimmy)
3.最后在这些文件中搜索所有包含有Hashmap的行
(当然也可以考虑直接将他改为HashMap)

我是这么做的,
find /home/jimmy/Develop -name "*java*" -exec grep jimmy -l {} \;
这么做的结果是完成了前两步.输出如下
/home/jimmy/Develop/Users.java
/home/jimmy/Develop/Services.java
/home/jimmy/Develop/Status.java

我想使用:
find /home/jimmy/Develop -name "*java*" -exec grep jimmy -l {} \; | grep Hashmap -n
却行不通
请指教!
发表于 2003-6-20 18:39:33 | 显示全部楼层
试试把grep "string"放在前面, 如:grep "string" $(your find command....)
;)
发表于 2003-6-20 19:14:42 | 显示全部楼层
或者可以用xargs来解决,
ls -l|grep username|find . -name "filename"|xargs grep -l "string"
相关参考:
http://www.linuxsir.cn/bbs/showthread.php?threadid=41548
 楼主| 发表于 2003-6-20 19:38:53 | 显示全部楼层
多谢版主,已经实现了
grep Hashmap -n `find /home/jimmy/Develop -exec grep jimmy -l {} \;`
或者
sed -ne 's/Hashmap/HashMap/gp' `find /home/jimmy/Develop -exec grep jimmy -l {} \;`

shell可这是强大呀,要是在windows中可能要费劲一些了
发表于 2003-6-20 20:13:01 | 显示全部楼层
windows下面也就是几次查找而已
一点都不麻烦

或者用ultraedit/editplus这样支持正则表达式的软件进行搜索
 楼主| 发表于 2003-6-20 20:29:19 | 显示全部楼层
当然ultraEdit/EditPlus确实可以使用正则表达式来完成工作
但我实际的工作并不是我上面写的例子那么简单,
实际情况是这样的,我的代码中有一部分是从别人的代码中
copy过来的,在他的文件中使用abcd是正确的,而在
我的代码中因该是defg,所以在使用
Replace in Files时是不能更改到他的代码的
所以必须一个一个的确认更改(其实也麻烦不到哪里去)  ;)
但是我使用bash shell时相对简单一些。

btw:ultraEdit/EditPlus确实比较强大
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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