zoukankan      html  css  js  c++  java
  • shell中的正则表达式, and和or写法, vim中的查找和替换用法, 正则中的posix字符类

    1. shell中的正则和原生的正则有些许出入, 以下列举了shell中的正则规则:

        

      图中 umber 代表前面对应()位置的内容, 类似于python中的命名分组, 对应数字可直接引用括号中内容

     

      注意扩展正则元字符的使用结果可能和预期有差异, 对比扩展和基本两个截图, 会发现, 同样的一个字符, 会使用\, 这就是

     问题所在, 在grep中默认使用的都是基本元字符, 要想使用扩展元字符可在对应位置加 或者使用egrep来代替grep命令.

     

    2. shell中的正则使用举例:

     双括号的额外含义, 其内可使用正则表达式, 并不表示正则必须在双括号中才能执行;

     [[ 10 =~ ^[0-9]+$ ]] 用于shell中判定是否是数字, 注意正则处不要加引号, 加引号表示字符串匹配; 取反在10前加叹号即可;
     shell中这些命令都是根据正则规则来解析的, 有vi, grep, sed, awk, python, vim;

    3. vim中使用正则进行查找与替换:

     vim编辑器中的替换, %表示全文, 即第一行到最后一行. s表示替换, 完整命令如下:
     : %s/xx/XX/ # 表示把小写xx换为大写的, 只替换第一个, 无论第一个是否是单纯的xx或包含其他字符的
     : %s/ss/SS/g # 替换全局, 所有包含ss的都替换, 无论ss是否是单独的.
     : %s/<ss>/SS/g # < >用于限定词首和词尾, 限定ss两边不能有字母, 标点除外
     正则中严格区分大小写, shell中匹配不会严格区分

    4. shell中的and和or用法举例:

     [ 1 -lt 2 -a 5 -gt 10 ]  [ 1 -lt 2 -o 5 -gt 10 ]

     [[ 1 -lt 2 && 5 -gt 10 ]]    [[ 1 -lt 2 || 5 -gt 10 ]]            # 等价于上面的写法

  • 相关阅读:
    openSSH学习笔记(一)
    Socket实例
    TCP/IP详解学习笔记(12)-TCP的超时与重传
    TCP/IP详解学习笔记(11)-TCP交互数据流,成块数据流
    TCP/IP详解学习笔记(10)-TCP连接的建立与中止
    TCP/IP详解学习笔记(8)-DNS域名系统
    TCP/IP详解学习笔记(9)-TCP协议概述
    存储过程的优缺点
    数据字典(转)
    abp viewmodel的写法
  • 原文地址:https://www.cnblogs.com/quzq/p/12109587.html
Copyright © 2011-2022 走看看