码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Shell编程】Shell中的正则表达式


    目录

    • Shell中的正则表达式
      • 1、正则表达式与通配符
      • 2、正则表达式规则
      • 3、练习
        • 测试的文本
        • 3.1 匹配所有内容,包括空白行
        • 3.2 匹配行至少包含有一个a的行
        • 3.3 匹配行至少有俩个连续的a
        • 3.4 匹配在s与d字符中间有俩个字符的单词的行
        • 3.6 匹配所有内容
        • 3.7 匹配以大写M开头的行
        • 3.8 匹配以!结尾的行
        • 3.9 匹配所有的空行
        • 3.10 匹配s和id中间的字母要么是a要么是o的行
        • 3.11 匹配任意一个数字的行
        • 3.12 匹配用小写字母开头的行
        • 3.13 匹配没用小写字母开头的行
        • 3.14 匹配不以字母开头的行
        • 3.15 匹配使用 **.** 结束的行
        • 3.16 匹配a字母连续出现3次或大于3次的行
        • 3.14 匹配在字母sa和字母i直接有至少一个a,最多三个3

    Shell中的正则表达式

    1、正则表达式与通配符

    • 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配。grep、awk、sed等命令可以支持正则表达式。

    • 通配符用来匹配符合条件的文件名,通配符是完全匹配的。ls、find、cp这些命令不支持正则表达式,所以只能使用Shell自己的通配符来进行匹配了。

    2、正则表达式规则

    元字节作用
    *前一个字符匹配0次或者n次
    .匹配除了换行符外任意一个字符
    ^匹配行首,例如:^hello会匹配以hello开头的行
    $匹配行尾,例如:hello$会匹配以hello结尾的行
    []匹配中括号中指定的任意一个字符,只匹配一个字符。
    例如:{aoeiu}匹配任意一个元音字符,
    [0-9]匹配任意一位数字
    [a-z][0-9]匹配小写字和一位数构成的俩位字符
    [^]匹配除了中括号的字符以外的任意一个字符,例如:[^0-9]匹配
    任意一个为数字字符
    \转义符,用于取消将特殊符号含义取消
    \{n\}表示其前面的字符出现不小于n次,
    例如:[0-9]{2,} 表示匹配俩位数及其以上的数字
    \{n,m\}表示其前面的字符至少出现n次,最多m次,
    例如:[a-z]{6,8}匹配6到8为的小写字母

    3、练习

    测试的文本

    在这里插入图片描述

    3.1 匹配所有内容,包括空白行

    命令:grep "a*" 文件名

    效果图:
    在这里插入图片描述

    3.2 匹配行至少包含有一个a的行

    命令:grep "aa*" 文件名

    效果图:

    在这里插入图片描述

    3.3 匹配行至少有俩个连续的a

    命令:grep "aaa*" 文件名

    效果图:
    在这里插入图片描述

    3.4 匹配在s与d字符中间有俩个字符的单词的行

    命令:grep "s..d" 文件名

    效果图:

    在这里插入图片描述

    3.6 匹配所有内容

    命令:grep ".*" 文件名

    效果图:
    在这里插入图片描述

    3.7 匹配以大写M开头的行

    命令:grep "^M" 文件名

    效果图:
    在这里插入图片描述

    3.8 匹配以!结尾的行

    命令:grep "\!$" 文件名

    效果图:
    在这里插入图片描述

    3.9 匹配所有的空行

    为了方便观察 添加参数-n打印一下行号。

    命令:grep "^$" 文件名

    效果图:
    在这里插入图片描述

    3.10 匹配s和id中间的字母要么是a要么是o的行

    命令:grep "s[ao]id" 文件名

    效果图:
    在这里插入图片描述

    3.11 匹配任意一个数字的行

    命令:grep "[0-9]" 文件名

    效果图:
    在这里插入图片描述

    3.12 匹配用小写字母开头的行

    命令:grep "^[a-z]" 文件名

    效果图:
    在这里插入图片描述

    3.13 匹配没用小写字母开头的行

    命令:grep "^[^a-z]" 文件名

    效果图:

    在这里插入图片描述

    3.14 匹配不以字母开头的行

    命令:grep "^[^a-zA-Z]" 文件名

    效果图:
    在这里插入图片描述

    3.15 匹配使用 . 结束的行

    命令:grep "\.$" 文件名

    效果图:
    在这里插入图片描述

    3.16 匹配a字母连续出现3次或大于3次的行

    命令:grep "a\{3\}" 文件名

    效果图:
    在这里插入图片描述

    3.14 匹配在字母sa和字母i直接有至少一个a,最多三个3

    命令:grep "sa\{1,3\}i" 文件名

    效果图:
    在这里插入图片描述

  • 相关阅读:
    Java笔试题
    PyTorch可视化 | 可视化网络结构 | 使用TensorBoard可视化训练过程
    vsftpd 服务
    2.1 实验:反病毒引擎扫描、编译时间、查壳、导入表查看、字符串查看--《恶意代码分析实战》
    [附源码]java毕业设计剧本杀门店管理系统-
    数字IC前端学习笔记:数字乘法器的优化设计(华莱士树乘法器)
    vue2升级vue3指南(一)—— 环境准备和构建篇
    笨方法学Python
    掌握这些你也可以拿offer到手软,让Java面试官佩服的没话说!
    Java18新特性
  • 原文地址:https://blog.csdn.net/qq_45254369/article/details/126896271
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号