zoukankan      html  css  js  c++  java
  • linux 正则表达式 使用grep命令

    最常应用正则表达式命令是 awk sed grep

    [root@MongoDB ~]# cat mike.log 
    I am mike!
    I like linux.
    
    I like play football, tennis and reading.
    my qq is 123456789!
    my blog is https://i.cnblogs.com
    my blog is i.miek.com
    I am miek.
    not MIEK
    NOT MIKE

    基础正则字符说明

    1.^word 匹配以word开头的内容  vi/vim编辑器里^代表一行的开头

    2.word$ 匹配以word结尾的内容  vi/vim编辑器里$代表一行的结尾

    3. ^$ 表示空行

    a.过滤出来以m开头的行

    [root@MongoDB ~]# grep "^m" mike.log 
    my qq is 123456789!
    my blog is https://i.cnblogs.com
    my blog is i.miek.com

    b.过滤出来以m结尾的行

    [root@MongoDB ~]# grep "m$" mike.log 
    my blog is https://i.cnblogs.com
    my blog is i.miek.com

    c.过滤匹配空行的行

    grep -n 显示匹配的行号

    [root@MongoDB ~]# grep -n '^$' mike.log 
    3:
    11:

    grep -v 排除内容  指定字段不显示

    过滤出 不带 空行的行,其他行都打印

    [root@MongoDB ~]# grep -vn "^$" mike.log 
    1:I am mike!
    2:I like linux.
    4:I like play football, tennis and reading.
    5:my qq is 123456789!
    6:my blog is https://i.cnblogs.com
    7:my blog is i.miek.com
    8:I am miek.
    9:not MIEK
    10:NOT MIKE

    4. . 代表且只能代表任意一个字符。

    5. 转义

    6. * 重复0个或多个前面的一个字符 例如o* 匹配没有o,有一个o或多个o

    7 .* 匹配所有字符  ^.*以任意多个字符开头, .*$ 以任意多个字符结尾

    a. 匹配任意一个字符  .

    因为第三行没有字符 没有匹配到

    [root@MongoDB ~]# grep -n "." mike.log 
    1:I am mike!
    2:I like linux.
    4:I like play football, tennis and reading.
    5:my qq is 123456789!
    6:my blog is https://i.cnblogs.com
    7:my blog is i.miek.com
    8:I am miek.
    9:not MIEK
    10:NOT MIKE

    .*

    [root@MongoDB ~]# grep -n ".*" mike.log 
    1:I am mike!
    2:I like linux.
    3:
    4:I like play football, tennis and reading.
    5:my qq is 123456789!
    6:my blog is https://i.cnblogs.com
    7:my blog is i.miek.com
    8:I am miek.
    9:not MIEK
    10:NOT MIKE
    11:

     匹配 mi..    .. 任意字符

    root@MongoDB ~]# grep -n "mi.." mike.log 
    1:I am mike!
    7:my blog is i.miek.com
    8:I am miek.

    grep -i 不区分大小写

    [root@MongoDB ~]# grep -ni "mi.." mike.log 
    1:I am mike!
    7:my blog is i.miek.com
    8:I am miek.
    9:not MIEK
    10:NOT MIKE

    匹配以.结尾 需要转义

    [root@MongoDB ~]# grep -n ".$" mike.log 
    2:I like linux.
    4:I like play football, tennis and reading.
    8:I am miek.

    -o 只显示匹配的内容

    [root@MongoDB ~]# grep -no "mi.." mike.log 
    1:mike
    7:miek
    8:miek

    8. [abc]  匹配字符串集合内任意一个字符 [a-zA-Z],[0-9]

    9. [^abc]  匹配不包含^后的任意一个字符的内容

    中括号里的^为取反

    匹配0-9数字的行 匹配数字的行

    [root@MongoDB ~]# grep  "[0-9]" mike.log 
    my qq is 123456789!
  • 相关阅读:
    【ceph | 运维】部署osd
    【osd | 运维】osd数据均衡
    leveldb——leveldb入门篇之Linux下编译配置和使用
    【Linux系统编程】预分配磁盘空间
    【filestore】源码剖析
    【Linux】Linux Page Cache的理解
    ceph internal 之 底层对象
    【Linux】磁盘基础知识
    Spring Cloud Alibaba学习08Seata基本使用
    Spring Cloud Alibaba学习05Sentinel基本使用
  • 原文地址:https://www.cnblogs.com/mingerlcm/p/10930900.html
Copyright © 2011-2022 走看看