Linux grep命令用法教程

发布时间:2019-09-01编辑:脚本学堂
本文介绍了linux下grep命令的用法,一直以为grep只能进行单个文件的筛选,grep命令还可以进行多个文件的筛选,功能很强大,有需要的朋友可以参考学习下。

假设要找一个start_kernel函数,但不知道此函数在哪个文件里,可以用如下命令:
grep -wrI "start_kernel" ./*

linuxjishu/14086.html target=_blank class=infotextkey>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的行