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
  • 引号使用:

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

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

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

    • &&:逻辑与
    • ||:逻辑或
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 ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值