• Lniux三剑客——Grep


    前言

    echo guangge{01…100…2} 第二个是间隔多少个计数

    命令别名 alias, unalias , 作用是封装命令

    alias rm = ‘rm -i’

    命令历史 history
    !行号
    !! 上一次的命令

    ctrl + a 移动到行首
    ctrl + e 移动到行尾

    Grep

    格式:

    grep [options] pattern [files]
    
    • 1

    常用参数:

    参数选项解释说明
    -v–invert-match:显示不能被模式匹配到的行
    -n显示匹配行与行号
    -iignorecase,忽略字符的大小写
    -c只统计匹配的行数
    -E使用egrep命令,支持使用扩展的正则表达式元字符
    –color=auto为grep过滤结果添加颜色
    -w只匹配过滤的单词
    -o仅显示匹配到的字符串本身
    -q–quiet 或 --silent:静默模式,即不输出任何信息
    -r递归查找子目录中的文件

    基础正则表达式BRE集合

    基本正则表达式BRE集合

    符号作用
    ^尖角号,用于模式的最左侧,如“^oldboy",匹配以oldboy单词开头的行
    $美元符,用于模式的最右侧,如"oldboy$",表示以oldboy单词结尾的行
    ^$组合符,表示空行
    .匹配任意一个且只有一个字符,不能匹配空行
    \转义字符,让特殊含义的字符,现出原形,还原本意,例如\.代表小数点
    *匹配前一个字符(连续出现)0次或1次以上,重复0次代表空,即匹配所有内容
    .*组合符,匹配所有内容
    ^.*组合符,匹配任意多个字符开头的内容
    .*$组合符,匹配以任意多个字符结尾的内容
    [abc]匹配集合内的任意一个字符,a或b或c,可以写[a-c]
    [^abc]匹配除了后面的任意字符,a或b或c,表示对[abc]的取反

    扩展正则表达式实践

    +

    +号表示匹配前一个字符1次或多次,必须使用grep -E扩展正则

    此处使用grep-E进行实践扩展正则:

    grep -E ‘l+’ test.txt

    ?符

    匹配前一个字符0次或1次1

     找出文件中包含gd或god的行
     grep -E 'go?d' test.txt
    
    • 1
    • 2

    god
    #字母o出现了一次
    gd
    #字母o出现了0次

    |符

    竖线|在正则中是或者的意思

    找出系统中的txt文件,且名字里包含a或b的字符
    find / -maxdepth 3 -name "*.txt" | grep -i -E "a | b"
    
    • 1
    • 2

    ()小括号

    将一个或多个字符捆绑在一起,当作一个整体进行处理;

    • 小括号功能之一是分组过滤被括起来的内容,括号内的内容表示一个整体

    • 括号()内的内容可以被后面的"\n"正则引用,n为数字,表示引用第几个括号的内容

      • \1∶表示从左侧起,第一个括号中的模式所匹配到的字符

      • \2:从左侧期,第二个括号中的模式所匹配到的字符

    grep -E 'g(oo | la)d' test.txt
    # good
    # glad
    
    
    #匹配两次括号内容
    grep -E "(l..e).*\1" lovers.txt
    # I love my lover.
    # He love his lovers.
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    {n,m}匹配次数

    重复前一个字符各种次数,可以通过-o参数显示明确的匹配过程

    意思为匹配 y 最少2次,最多4次。

    也可以忽略n 或 m , 默认边界值: y{n,} y{,m}

    grep -E "y{2,4}" test.txt
    # yyyyyyyyyu
    # yyyyu
    
    #加了 -o 显示匹配的内容
    grep -E "y{2,4}" test.txt -o
    # yyyy
    # yyyy
    # yyyy
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    选择工作还是读研?中国人民大学与加拿大女王大学金融硕士让你兼得
    150个pb网站模板(都是成品网站,上传php空间即可使用),建站必备
    【Java】面试笔记_接口抽象类_重载与重写
    排序算法之【归并排序】
    令人担忧的5G网络可被黑客入侵
    贪心算法求解 图的m着色问题
    面试金典--面试题 17.21. 直方图的水量(不困难的困难题)
    容量为0多线程操作的SynchronousQueue(FIFO)
    微信小程序交互增强:实现上拉加载、下拉刷新与一键返回顶部【代码示例】
    javaweb-响应字符数据
  • 原文地址:https://blog.csdn.net/qq_37334150/article/details/133824455