grep

grep -R --include="*.cpp" key dir【指定文件的扩展名】

上述命令的含义:

在dir目录下递归查找所有.cpp文件中的关键字key

grep -r magic /usr/src  #显示/usr/src目录下的文件(包含子目录)包含magic的行【不指定文件扩展名】

 

find / -type f -name "*xml"|xargs grep "zh_CN" 2>/dev/null
(1)在/目录下查找文件名以xml结尾的文件
(2)查看每个符合条件的行记录
(3)grep过程的错误信息不显示。错误提示信息示例:grep: n3U: 没有那个文件或目录

 

比如想在gcc手册里找-o选项对应的解释,如果man gcc | grep -o,grep会把-o当做自己的命令选项,是得不到正确结果的。
如果想得到正确结果,把待查的-o扩展成*-o就行了,不过这时需要给grep加上-E选项,所以最终的实例为:

man gcc |grep -E *-o

 

在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区的。

  区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。 

               (2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。

  一.find命令

    基本格式:find  path expression

    1.按照文件名查找

    (1)find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找
    (2)find /etc -name httpd.conf  #在/etc目录下文件httpd.conf
    (3)find /etc -name '*srm*'  #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
    (4)find . -name 'srm*'   #表示当前目录下查找文件名开头是字符串‘srm’的文件

    2.按照文件特征查找     

    (1)find / -amin -10   # 查找在系统中最后10分钟访问的文件(access time)
    (2)find / -atime -2   # 查找在系统中最后48小时访问的文件
    (3)find / -empty   # 查找在系统中为空的文件或者文件夹
    (4)find / -group cat   # 查找在系统中属于 group为cat的文件
    (5)find / -mmin -5   # 查找在系统中最后5分钟里修改过的文件(modify time)
    (6)find / -mtime -1   #查找在系统中最后24小时里修改过的文件
    (7)find / -user fred   #查找在系统中属于fred这个用户的文件
    (8)find / -size +10000c  #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
    (9)find / -size -1000k   #查找出小于1000KB的文件

    3.使用混合查找方式查找文件

    参数有: !,-and(-a),-or(-o)。

    (1)find /tmp -size +10000c -and -mtime +2   #在/tmp目录下查找大于10000字节并在最后2分钟内修改的文件
         (2)find / -user fred -or -user george   #在/目录下查找用户是fred或者george的文件文件
         (3)find /tmp ! -user panda  #在/tmp目录中查找所有不属于panda用户的文件
        

  二、grep命令

     基本格式:find  expression

     1.主要参数

    [options]主要参数:
    -c:只输出匹配行的计数。
    -i:不区分大小写
    -h:查询多文件时不显示文件名。
    -l:查询多文件时只输出包含匹配字符的文件名。
    -n:显示匹配行及行号。
    -s:不显示不存在或无匹配文本的错误信息。
    -v:显示不包含匹配文本的所有行。

    pattern正则表达式主要参数:
    \: 忽略正则表达式中特殊字符的原有含义。
    ^:匹配正则表达式的开始行。
    $: 匹配正则表达式的结束行。
    \<:从匹配正则表达 式的行开始。
    \>:到匹配正则表达式的行结束。
    [ ]:单个字符,如[A]即A符合要求 。
    [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
    .:所有的单个字符。
    * :有字符,长度可以为0。

    2.实例  

  (1)grep 'test' d*  #显示所有以d开头的文件中包含 test的行
  (2)grep ‘test’ aa bb cc    #显示在aa,bb,cc文件中包含test的行
  (3)grep ‘[a-z]\{5\}’ aa   #显示所有包含每行字符串至少有5个连续小写字符的字符串的行
  (4)grep magic /usr/src  #显示/usr/src目录下的文件(不含子目录)包含magic的行
  (5)grep -r magic /usr/src  #显示/usr/src目录下的文件(包含子目录)包含magic的行

  (6)grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),

http://www.cnblogs.com/zhangmo/p/3571735.html

 

时间: 2024-09-24 17:09:57

grep的相关文章

grep, egrep, fgrep, rgrep - print lines matching a pattern

grep, egrep, fgrep, rgrep - print lines matching a pattern 14.1. -v, --invert-match grep -v "grep" [root@development ~]# ps ax | grep httpd 6284 ? Ss 0:10 /usr/local/httpd-2.2.14/bin/httpd -k start 8372 ? S 0:00 perl ./wrapper.pl -chdir -name ht

Unix下GREP的用法

grep(全局正则表达式版本)允许对文本文件进行模式查找,grep支持基本正则表达式,也支持其扩展集. grep有三种变形: grep 标准grep命令 egrep 扩展grep命令,支持基本及扩展的正则表达式,但不支持\q模式范围的应用 fgrep 快速grep命令,允许查找字符串而不是一个模式,不要误解fast,其实和grep速度相当 grep的一般格式: grep [选项] 基本正则表达式 [文件] 这里的基本正则表达式可为字符 使用双引号: 字符串参数最好使用双引号扩起来,一是以防被误解

linux-shell脚本命令:grep命令简介

[ grep简介: ] grep是用来过滤含有特定字符的行, 能使用正则表达式搜索文本, 它在数据中查找一个字符串时, 是以正行为单位进行数据选取的. 用法: grep [cinvs] 'pattern' file 例如: grep -n 'bbb' aaa.txt --color # 从文件aaa.txt中搜索关键词bbb, 并显示行号和高亮显示. [ 常用选项: ] -c:只输出匹配行的计数. -i:不区分大小写(只适用于单字符). -n:显示匹配行及行号. -s:不显示不存在或无匹配文本的

Linux编程中如何使用grep命令

grep (global search regular RE ) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. 参数: 1. -ANUM,--after-context=NUM 除了列出符合行之外,并且列出后NUM行. 如: $ grep –A1 panda file (从file中搜寻有panda样式的行,并显示该行的后1行) 2. -BNUM,--before-context=NU

Linux下grep命令使用方法

1. Grep简介 Grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.Unix的Grep家族包括Grep. eGrep和fGrep.eGrep和fGrep的命令只跟Grep有很小不同.eGrep是Grep的扩展,支持更多的re元字符, fGrep就是 fixed Grep或fast Grep,它们把所有的字

linux基础命令(39) grep命令

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是 Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. grep的工作方式是这样的, 它在一个或多个文件中搜索字符串模板.如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名.搜索的结果被 送到标准输出,不影响原文件内容. grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板

grep后加单引号、双引号和不加引号的区别

环境:VirtualBox4.1 + RedHat Linux 6 + Putty0.62 单引号: 可以说是所见即所得:即将单引号内的内容原样输出,或者描述为单引号里 面看到的是什么就会输出什么.单引号''是全引用,被单引号括起的内容不管是 常量还是变量者不会发生替换. 双引号: 把双引号内的内容输出出来:如果内容中有命令.变量等,会先把变量.命 令解析出结果,然后在输出最终内容来.双引号""是部分引用,被双 引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容. 不加引号:

linux系统下grep egrep fgrep用法以及正则表达式

一.grep.egrep.fgrep命令 本文中主要介绍了linux系统下grep egrep fgrep命令和正则表达式的基本参数和使用格式.方法.(注释:文中fg代表例子,) 1.1.基本定义: grep(global search regular RE ) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它只能使用基本的正则表达式来搜索文本,并把匹配的行打印出来. grep是很常见也很常用的命令,它的主要功能是进行字符串数据的比较,

Linux命令之grep命令使用介绍

  1.作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户. 2.格式 grep [options] 3.主要参数 [options]主要参数: -c:只输出匹配行的计数. -I:不区分大 小写(只适用于单字符). -h:查询多文件时不显示文件名. -l:查询多文件时只输出包含匹配字符的文件名. -n:显示匹配行

全面解析Linux的grep命令中正则表达式的用法

  Linux 附带有 GNU grep 命令工具,它支持扩展正则表达式extended regular expressions,而且 GNU grep 在所有的 Linux 系统中都是默认有的.Grep 命令被用于搜索定位存储在您服务器或工作站上的任何信息. 正则表达式 正则表达式就是用于匹配每行输入的一种模式,模式是指一串字符序列.下面是范例: 代码如下: ^w1 w1|w2 [^ ] grep 正则表达式示例 在 /etc/passswd 目录中搜索 'vivek' 代码如下: grep