设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 综合讨论区 —— LinuxSir.cn
›
shell进阶应用、shell编程
›
如何查找包含指定字符的指定后缀名的文件? ...
1
2
/ 2 页
下一页
返回列表
查看:
2563
|
回复:
11
如何查找包含指定字符的指定后缀名的文件?
[复制链接]
beginner
beginner
当前离线
积分
69
IP卡
狗仔卡
发表于 2003-1-15 23:29:55
|
显示全部楼层
|
阅读模式
不好意思,请大家看这里。
http://www.linuxsir.cn/bbs/showt ... d=117815#post117815
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
Pye
Pye
当前离线
积分
570
IP卡
狗仔卡
发表于 2003-1-16 01:15:23
|
显示全部楼层
faint
过滤应该用管道符
permission deny 是因为你查找到了/proc这个目录,跳过这个目录
find / -path '/proc' -prune -name *.txt | grep iloveyou
回复
支持
反对
使用道具
举报
显身卡
beginner
beginner
当前离线
积分
69
IP卡
狗仔卡
楼主
|
发表于 2003-1-16 23:09:11
|
显示全部楼层
在您的启发下,我加上xargs后,在redhat6.1上成功。
find / -name "*.txt" |xargs grep "love"
另外,有高手教我了两个方法,一并奉上:
grep -rnI love *.txt
find / -type f -name "*.txt" -exec grep -l "love" {} \;
回复
支持
反对
使用道具
举报
显身卡
beginner
beginner
当前离线
积分
69
IP卡
狗仔卡
楼主
|
发表于 2003-1-16 23:15:10
|
显示全部楼层
再修改一下
[root@mm /]# find / -name "*.txt" |xargs grep -l "love"
find: /proc/6/fd: Permission denied
/usr/doc/ImageMagick-4.2.9/README.txt
/usr/doc/dosemu-0.99.13/DANG.txt
/usr/doc/dosemu-0.99.13/README-tech.txt
/usr/doc/vim-common-5.4/doc/quotes.txt
/usr/share/vim/vim54/doc/quotes.txt
/1.txt
/3.txt
[root@mm /]#
回复
支持
反对
使用道具
举报
显身卡
KornLee
KornLee
当前离线
积分
6960
IP卡
狗仔卡
发表于 2003-1-17 02:09:21
|
显示全部楼层
sorry
beginner兄,仓促给你的回复,没怎么作实验,不好意思
不过这里的兄弟们还是很热情的,是不?!
回复
支持
反对
使用道具
举报
显身卡
beginner
beginner
当前离线
积分
69
IP卡
狗仔卡
楼主
|
发表于 2003-1-17 12:55:32
|
显示全部楼层
回复
支持
反对
使用道具
举报
显身卡
abby
abby
当前离线
积分
1606
IP卡
狗仔卡
发表于 2003-1-22 08:48:19
|
显示全部楼层
beginner兄弟写的 find / -type f -name "*.txt" -exec grep -l "love" {} \;
可以给俺解释一下么?
另外的grep的参数-r好象也不起递归搜索子目录的作用,why ?
回复
支持
反对
使用道具
举报
显身卡
beginner
beginner
当前离线
积分
69
IP卡
狗仔卡
楼主
|
发表于 2003-1-22 20:45:03
|
显示全部楼层
1.前面这部分find / -type f -name "*.txt"意思很明确,就是查找/目录下以txt为后缀的文件,查询的结果就是所有这些文件的名字。
后半部分-exec grep -l "love" {} \;中需要解释的是{}和\;。其中{}表示-exec前面即find / -type f -name "*.txt"的查询结果,\;表示命令结束,是固定的格式。
2.grep -rnI love *.txt 也是别人告诉我的
关于grep的参数-r,帮助上说是起递归作用的,但我在REDHAT6.2和7.3下都不成功,我猜可能是我系统自身的bug。
我最喜欢的是find / -name "*.txt" |xargs grep "love" ,意思一目了然。当然还可以改进,比如find / -type f -name "*.txt" |xargs grep "love"
回复
支持
反对
使用道具
举报
显身卡
Pye
Pye
当前离线
积分
570
IP卡
狗仔卡
发表于 2003-1-22 20:47:59
|
显示全部楼层
find / -type f -name "*.txt" -exec grep -l "love" {} \;
/ 表示从/开始搜索。
-type f 表示搜索的对象是普通文件。
-name "*.txt" 表示同通配符查找后缀名为txt的文件。
-exec 表示excute选项,用来对搜索到的对象执行指定的命令。
grep -l "love" {} \; 就是exec参数指定的command,注意{}是表示搜索到的对象,后面的\;不能省略,这是命令的格式。
grep -l "love" 是过滤love,只显示包含love字符的文件的文件名,过滤的源就是{}里的当前的对象。
我说的有点乱七八糟,呵呵,兄弟见谅吧,:)
回复
支持
反对
使用道具
举报
显身卡
beginner
beginner
当前离线
积分
69
IP卡
狗仔卡
楼主
|
发表于 2003-1-22 20:57:34
|
显示全部楼层
哈哈,版主写得比我清楚。
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
/ 2 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表