• 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
  • 相关阅读:
    智慧工地大数据管理,真是细节到极致了
    【Python】使用Shell通配符来匹配字符串
    引入短信服务
    vite-react修改antd得prefix
    Uniapp导航栏右侧自定义图标文字按钮
    灵活好用的sql monitoring 脚本 part5
    浅谈薄膜行业MES解决方案
    四、K8S资源清单
    欢迎关注我的微信,共同探讨技术生活,用技术创造价值。我的标签:嵌入式系统、数据通信、人工智能、项目管理、理财、创业、心理学
    众和策略:小盘和大盘的关系?
  • 原文地址:https://blog.csdn.net/qq_37334150/article/details/133824455