Linux学习-10月16(grep)

9.1 正则介绍_grep

9.2 grep中

9.3 grep下

一、什么是正则

  • 正则就是一串有规律的字符串,包括各种特殊符号
  • 掌握正则对于编写shell有很大帮助
  • 各种编程中都有正则,原理是一样的

二、grep简介

    grep命令用来过滤字符

   用法:

  grep [-cinvrABC]  'word'  filename

  • -c:统计
  • -n:显示行
  • -i:不区分大小写
  • -r:遍历所有的子目录
  • -v:取反
  • -A:后面跟数字,过滤出符合要求的行及下面n行
  • -B:同上,过滤出符合要求的行及上面n行
  • -C:同上,过滤出符合要求的行及上下n行

    grep常用操作

  • grep -n ‘root’ passwd

       匹配‘root’并显示行号

        

  • grep -vn 'root' passwd

        匹配非"root"行并显示行号

         

  • grep -A2 'root' passwd

        匹配“root”行,并显示以下两行。

    

  •     grep -B2 'root' passwd

            匹配“root”行,并显示以下两行。

  •     grep -C2 'root' passwd

            匹配“root”行,并显示上下两行。

四、grep正则操作

  • grep '[0-9]' /etc/inittab

        匹配带数字的行,[0-9]就是0到9的意思

        

  • grep -v '^#' passwd

        匹配以非“#”开头的行,^表示以什么开头

        

  • grep '[^0-9]' test

         匹配所有非数字 ,把^符号放在[]中就是非的意思。

        

  • grep '^[^0-9]' test

        匹配所有以非数字开头的行

        

  • grep 'r.ot' passwd

        匹配所有“rxot”的行,”"."代表任意一个字符

        

  • grep 'o*o' passwd

        "*"代表*左边的字符重复0-n次,也就是一个o也会匹配,ooo....多个也会匹配

        

  • grep '.*' passwd

        ".*"表示贪婪匹配,所有的都会被匹配

     

  • grep 'o\{2\}' passwd

        {n}中指定次数,指花括号左边字符的重复范围

        如:grep 'o\{2\}' 会把两个oo匹配到

        

  •  在grep中使用+ {} () | 需要时\进行脱意。不想脱意可以使用 egrep 或者 grep -E

    

  • grep -E '(oo){2}' passwd

    ()表示组合的意思。

        

  • grep 'o\+o' passwd   

        类似于*,不同的是+是1-n次,*是0-n次,如下图单个o不会被匹配到

        

  • grep ‘o?t’ passwd

        ?表示左边字符的重复次数为0或者1

    

  • grep -E 'root|test' passwd

    '|'表示或者,比如以上就是匹配‘root’或者‘test’的意思

    以上操作都不会修改文件,如果想要修改可以加上-i参数即可。

    

猜你喜欢

转载自my.oschina.net/u/3755326/blog/2249048
今日推荐