• grep命令


    linux grep命令

    1.作用
    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

    2.格式
      grep [options]

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


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

    4.grep命令使用简单实例
      $ grep ‘test’ d*
       显示所有以d开头的文件中包含 test的行。
      $ grep ‘test’ aa bb cc
      显示在aa,bb,cc文件中匹配test的行。
      $ grep ‘[a-z]\{5\}’ aa
      显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
      $ grep ‘w\(es\)t.*\1′ aa
      如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着 另外一个es(\1),找到就显示该行。

     
    5.常用grep实例
      (1)多个文件查询
          grep "sort" *.doc            #见文件名的匹配

      (2)行匹配:输出匹配行的计数
          grep -c "48" data.doc       #输出文档中含有48字符的行数

      (3)显示匹配行和行数
          grep -n "48" data.doc       #显示所有匹配48的行和行号

      (4)显示非匹配的行
          grep -vn "48" data.doc      #输出所有不包含48的行

      (4)显示非匹配的行
          grep -vn "48" data.doc      #输出所有不包含48的行

      (5)大小写敏感
          grep -i "ab" data.doc       #输出所有含有ab或Ab的字符串的行

      正则表达式的应用:
      (1)正则表达式的应用 (注意:最好把正则表达式用单引号括起来)
          grep '[239].' data.doc      #输出所有含有以2,3或9开头的,并且是两个数字的行

      (2)不匹配测试
          grep '^[^48]' data.doc      #不匹配行首是48的行

      (3)使用扩展模式匹配
          grep -E '219|216' data.doc

     
      1.搜索特定的字符
      (1)查看显示字符的行数
      grep -n 'oo' pp

      (2)查看非oo的字符
      grep -v 'oo' pp

      (3)查看大小写忽略的字符
      grep -i 'oo' p

     
      2.利用[]处理搜索结果
      (4)查看 tast 和 test的字符串
        grep -n 't[ae]st' pp            #这里[ae]只当一个字符处理 a 或者是 e 这样就能匹配要求

       (5)若是希望匹配 t(x)st 这个x是任意的字符
        grep 't[.]st' pp        #.符号代表任意的字符

       (6)查看包含oo字符的信息
        grep -n 'oo' pp

       (7)若是希望在oo之前没有g的字符信息
        grep -n '[^g]oo' pp      #这里的^就是取反的意思 非goo得字符

       (8)取前面非字符的字符
        grep -n '[^a-zA-Z]oo' pp

       (9)得到数字的字符的话
        grep -n '[0-9]' pp

     
      3.行首和行尾的特殊处理 $^
      (10)若是希望取得第一行是 the 开头的字符行
        grep -n '^the' pp

      (11)若是希望取得以英文字符开头的字符
        grep -n '^[a-zA-Z]' pp

      (12)取得不是以英文字符开头的信息
        grep -n '^[^a-zA-Z]' pp     # 里面的^是取反 外面的^行开头

      (13)取得小数点结尾的行
        grep -n '\.$' pp           #小数点是特殊字符 需要用\进行转义    

      (14)取得一个空行的方式
        grep -n '^$' pp

       (15)希望取得所有文档中非注释掉得内容的话
        grep -v '^$' pp|grep -v ^#              第一个是取非空行的数据 第一个管道是取非#开头的数据
      或者
        grep -n '^#' pp


      4.任意字符和重复字符
      . :绝对的任意字符
      * :0个或是多个相同字符

      (16)要查看gf中间是两个字符的数据
        grep -n 'g..f' pp

      (17)至少有一个是o的字符串
        grep -n 'oo*' pp      #因为*代表0个或是多个

      (18)以g开头和结尾,中间至少一个o
        grep -n 'goo*g'

      (19)查找gg中间是任意字符的字符串
        grep -n 'g.*g' pp     #这里.就代表任意字符

     
      5.限定符 {}
      (20)查看g和p之间存在两个连个o的字符串
        grep -n 'go\{2,5\}p'

      (21)查找至少两个的字符创
        grep -n 'go\{2,\}p' pp

      (22)查找只有两个的字符串
        grep -n 'go\{2\}p' pp

     

  • 相关阅读:
    Objective--C三大特性:封装,继承,多态(零碎笔记)
    零碎的知识点
    Objective--C之《文件操作》练习代码
    Objective--C的Foundation frame之NSMutableDictionary代码
    Objective--C的Foundation frame之NSMutableArray代码
    Objective--C随笔2016年8月7日
    关于OC中的委托delegate
    javascript 绝对路径工具类
    IE 弹出框处理经验
    InputStream和OutputStream 何时使用
  • 原文地址:https://www.cnblogs.com/sunziying/p/6383114.html
Copyright © 2020-2023  润新知