一直以为grep只能进行单个文件的筛选,今天才发现,它可以进行多个文件的筛选。这个功能真是太强大了。还是记录一下吧。
假设我要找一个start_kernel函数,但我不知道此函数在哪个文件里,于是可以用如下命令:
grep -wrI "start_kernel" ./*
以下是一些其它的用法,也记录一下,算是巩固吧
grep命令主要参数:
-c:只输出匹配行的计数。 -I:不处理二进制文件 -i:不区分大小写(只适用于单字符)。 -r:递归处理目录下的所有文件。 -h:查询多文件时不显示文件名。 -l:查询多文件时只输出包含匹配字符的文件名。 -n:显示匹配行及 行号。 -s:不显示不存在或无匹配文本的错误信息。 -v:显示不包含匹配文本的所有行。 -w:包含正则表达式。
grep命令常见用法:
(1)多个文件查询 grep "sort" *.doc #常见文件名的匹配 (2)行匹配:输出匹配行的计数 grep -c "sort" data.doc #输出data.doc中含有sort的行数 (3)显示匹配行和行数 grep -n "sort" data.doc #显示data.doc中所有匹配sort的行和行号 (4)显示非匹配的行 grep -vn "sort" data.doc #输出data.doc中所有不包含sort行 (4)显示非匹配的行 grep -vn "sort" data.doc #输出data.doc中不包含sort的行 (5)大小写敏感 grep -i "ab" data.doc #输出data.doc中所有含有ab或Ab的字符串的行 (6)正则表达式的应用 (注意:最好把正则表达式用单引号括起来) grep '[239].' data.doc #输出所有含有以2,3或9开头的,并且是两个数字的行 (7)不匹配测试 grep '^[^48]' data.doc #不匹配行首是48的行
原文:http://www.zhukun.net/archives/6663
暂无评论
写评论