• linu入门9—操作系统正则符号


    一、系统符号

    1、系统基本符号

    • 系统符号: # ~ $ . …
    • 通配符号:* {}

    基本作用:简化操作,进行匹配

    2、系统特殊符号

    • $: 取变量内容,配合awk去列、普通用户提示符

    • !: 取反,强制

    • |: 将前一个命令结果交由后一个命令执行

    • xargs: 将多行内容显示在一行

    • 示例操作:

      • 查询多个文件,并查看其中内容:find / -maxdepth 2 -type f -name “abc*” | xargs cat
      • 将查询到的多个文件的详细信息显示出来:find / -name “abc*.txt” | xargs ls -l
      • 删除/root下的三个abc文件: find / -maxdepth 2 -type f -name “abc*” | xargs rm -rf
        • 查找指定的.txt文件并复制到/tmp目录:cp -rf find /test -type f -name "*.txt" /tmp
    • 引号使用:

      • 单引号:输出信息,写什么显示什么
      • 双引号:类似于单引号,但对特殊信息会做解析
      • 反引号:将引号内的命令先执行,然后把执行结果交给引号外的命令处理。
    • 重定向符号:

      >  :输入重定向
      >> :追加输入重定向
      
      • 1
      • 2
    • 路劲信息:

      • ./:当前目录
      • …/:上级目录
      • /:更目录
      • ~:用户根目录
    • 逻辑符号:

      • &&:逻辑与
      • ||:逻辑或

    3、系统通配符

    • *:模糊匹配所有内容
    • {}:生成序列信息
      • {1…9}
      • {a…z}
      • {001…100}
      • {1…10…2}:生成奇数序列
      • {0…10…2}:生成偶数序列

    二、操作系统正则符号说明

    1、基础正则符号

    • 尖角符号^:以什么开头(eg:cat /etc/passwd |grep “^root” )
    • 美元符号 : 以什么结尾( e g : c a t / e t c / p a s s w d ∣ g r e p " a b c :以什么结尾(eg:cat /etc/passwd |grep "abc :以什么结尾(eg:cat/etc/passwdgrep"abc")
    • 点符号.: 匹配任意一个字符,且只有一个字符
    • 星符号*: 匹配前一个字符连续出现了0次或者多次
    • 点和星结合 .*: 匹配任意所有信息
    • 转义符号:
      • 将有特殊意义符号,转义成普通信息进行识别(eg: grep “.$” ~/test.txt)
      • 将没有意义的信息转义为有特殊意义的信息
        • \t:制表符
        • \b:换行符
        • eg: echo -e “编号\t姓名\t性别\n01\t张三\t男\n02\t李四\t女”
    • 括号符号[ ]:
      • 匹配包含a、b、c的行:grep “[abc]” test.txt
      • 匹配多个字符信息:grep “h[a-z]p” ~/test.txt
      • 将以I开头和m开头的行都找出来:grep “1” test.txt
    • 括号和尖号组合 [^]:
      • 排除符号,除了a、b、c外,匹配包含其他字符的行:grep "[^abc]" test.txt

    2、拓展正则符号

    • 加号+: 匹配前一个字符连续出现了1次或者多次
    • 竖线符号|:或者符号,用于匹配多个信息
    • 括号符号:
      • ():指定信息进行整体匹配,或者进行后项引用前项使用: sed命令替换功能
      • {}:可以指定字符连续匹配的次数
        • 第一种情况: x{n,m} 表示前一个字符至少连续出现n次,最多出现m次
        • 第二种情况: x{n} 表示前一个字符正好连续出现了n次
        • 第三种情况: x{n,} 表示前一个字符至少连续出现n次,最多出现多少次不限
        • 第四种情况: x{,m} 表示前一个字符至少连续出现0次,最多出现m次
    • 问号符?: 定义匹配前一个字符出现0或者1次

    三、测试实例

    实例1:通过ifconfig ens33查看ens33网卡的IP地址

    • 方法一、 ifconfig ens32 | egrep "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" -o | head -1
      • egrep "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" :匹配xxx.xxx.xxx.xxx格式的字符串
      • -o:只显示匹配到的信息,并列出
      • head -1:显示第一行信息
    • 方法二:ifconfig ens33 |egrep "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"| awk '{print $2}'
      • egrep "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" :匹配xxx.xxx.xxx.xxx格式的字符串
      • awk '{print $2}' :按照空格分割,输出第二部分内容

    1. Im ↩︎

  • 相关阅读:
    fishhook原理
    Kubernetes集群部署方式以及pod的管理方式
    第二十三课,抗锯齿(Anti Aliasing)
    【动手学深度学习PyTorch版】19 网络中的网络 NiN
    Pytorch分布式训练
    Springboot健康饮食小程序的设计的实现毕业设计源码280920
    一文带你了解”数据分箱“技术
    霍尔电流传感器如何进行可靠性测试?主要应用在哪些领域?
    Kafka核心原理第二弹——更新中
    HTML+CSS+JS制作结婚邀请函代码(程序员专属情人节表白网站)
  • 原文地址:https://blog.csdn.net/qq_45590334/article/details/126306360