随笔 - 60, 文章 - 0, 评论 - 197, 引用 - 0
数据加载中……

Grep用法小结

使用grep搜索文件内容——快捷、方便

(1) 在当前目录下的所有文件的文件内容中查找哪个文件的内容中有findcontents(大小写不敏感,列出findcontents所在文件的所在行)——适合于当前目录下的文件及目录数目比较少,如果查找后列出内容过多,将会失去查找意义。
grep -rin findcontents *

(2) 如果查找后列出内容过多,就需要用如下命令(只列出findcontents在所在文件的出现次数):
grep -ric findcontents * | grep -v :0

(3) 如果根本不知道文件所在目录,就需要在根目录下进行查找(查找整个硬盘空间),但是由于根目录下某些文件(bin、sbin、boot、dev、initrd、lib)没有查找价值,因而要将其排除在查找范围之外
# cd /
grep -rin findcontents `ls | grep -vE 'bin|boot|dev|initrd|lib'`

------------------------------------------

-i, --ignore-case
-n, --line-number
-c, --count
-r, --recursive
-v, --invert-match
-E, --extended-regexp
-e PATTERN, --regexp=PATTERN
Use PATTERN as the pattern; useful to protect patterns beginning with -.
注:有c的时候n将失效


posted on 2007-12-21 10:07 Normandy 阅读(12594) 评论(4)  编辑 收藏 引用 所属分类: Toolkit

评论

# re: Grep用法小结  回复  更多评论   

受用!!!

grep -v :0  组合在一起表达什么意思,只知grep是管道,过滤!


`ls | grep -vE 'bin|boot|dev|initrd|lib'`是不是vE是grep的参数?表达什么意思?

望指教!!
又让您费力了!!

谢谢
2008-03-26 00:32 | 含着泪的微笑

# re: Grep用法小结  回复  更多评论   

grep -v :0  组合用来过滤掉含有0个匹配的文件。因为使用-ric后,如果某个文件不包含要查找的字符串 会输出成 /path/to/file :0, 所以用上面的命令把这部分输出过滤了。


vE是grep参数,表示排除文件名匹配后续正则表达式的文件。这里的grep处理的是ls的输出,不再是某个文件的内容。
2013-07-27 13:31 | dalang

# re: Grep用法小结  回复  更多评论   

v东哥
2016-05-12 11:32 | 爱国

# re: Grep用法小结  回复  更多评论   

挖坟
2016-05-12 11:33 | zgyhc2050

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理