美文网首页
Day16操作系统正则符号

Day16操作系统正则符号

作者: a幕城 | 来源:发表于2019-11-04 19:30 被阅读0次
    操作系统基础符号介绍:
      `  . .. > >> < << ! \ ~ - ...`
        1) 基础符号系列:
           #:作用:
           01. `注释说明
           02. 命令提示符中, 表示用户身份-- root管理 `
           $作用:
          ` 01. 调取变量
           02. 命令提示符中, 表示用户身份-- 普通用户
           03. 读取文件中指定列信息`
          ` |``: 管道符号
           作用:
           1. 将管道符号前面命令输出的结果交给管道后面的命令进行处理`
           
    
    ```bash
     引号符号系别:
           ""       : 将指定信息进行输出显示 可以将特殊字符信息进行解析输出
                      echo "$PATH `which cat` oldboy67"
                      /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin /usr/bin/cat oldboy67
           ''       : 将指定信息进行输出显示 所见即所得
                      echo '$PATH `which cat` oldboy67'
                      $PATH `which cat` oldboy67
           没有引号 : 和双引号功能是类似, 但是没有引号情况可以输出序列信息
                      echo {01..10}     数字序列
                      echo {a..z}       字母序列
                      echo {01..10..2}  奇数序列
                      mkdir oldboy{01..10}  
    
                      seq -w 10  --- ? 如何生成奇数序列/生成偶数序列                
           ``       : 将引号中命令信息先执行, 将执行后结果交给引号外面的命令进行处理
                      cp /etc/hosts  /etc/hosts_`date +%F`     
           练习:
           环境准备:
           vim test.txt 
           oldboy  $oldboy  oldgirl 
           01. 利用sed如何将$oldboy信息修改替换为olddog
               sed 's#$oldboy#olddog#g'  文件信息
    

    路径符号系列:
    ~ : 当前系统用户家目录
    . : 表示当前目录
    表示隐藏文件 .oldboy.txt.swp
    中断编辑 -- 恢复文件信息 --- 删除隐藏文件
    同时编辑 -- 其他用户编辑完, 在进行编辑

       .. : 表示上级目录
       -  : 上一次所在目录
    
    4) 定向符号系列:
       >   :  标准输出重定向符号
       >>  :  标准输出追加重定向符号       定时任务
       2>  :  错误输出重定向符号
       2>> :  错误输出追加重定向符号
       <   :  标准输入重定向符号
              tr 'A-Z' 'a-z'  < 文件信息 
              xargs -n1       < 文件信息
       <<  :  标准输入追加重定向符号
              cat >> /oldboy.txt <<EOF 
              XXX
              XXX 
              EOF
    
    逻辑符号系列:     `shell脚本`
           第一件事: `创建目录 /oldboy  `
           第二件事:` 检查是否存在/oldboy`
           第三件事: `在/oldboy目录中创建oldboy.txt  ` 
           &&  : ` 前一个事情成功完成了, 再做下一件事情`
                 ` mkdir /oldboy &&  touch /oldboy/oldboy.txt`
                 `[root@linux67 /]# mkdi /oldboy &&  touch./oldboy/oldboy.txt
                  -bash: mkdi: command not found
                  [root@linux67 /]# mkdi /oldboy ; touch /oldboy/oldboy.txt
                  -bash: mkdi: command not found
                  touch: cannot touch ‘/oldboy/oldboy.txt’: No such file or directory`
         `  ||  :  前一个事情出现失败了, 再做一件事情
                  [root@linux67 /]# mkdi /oldboy || mkdir /oldboy
                  -bash: mkdi: command not found
                  [root@linux67 /]# ll -d /oldboy
                  drwxr-xr-x 2 root root 6 Nov  1 18:44 /oldboy
                  
                  [root@linux67 /]# mkdir /oldboy && touch /oldboy/oldboy.txt || mkdir /oldboy
                  [root@linux67 /]# ll -d /oldboy
                  drwxr-xr-x 2 root root 24 Nov  1 18:45 /oldboy
                  [root@linux67 /]# ll /oldboy
                  total 0
                  -rw-r--r-- 1 root root 0 Nov  1 18:45 oldboy.txt
                  [root@linux67 /]# rm /oldboy -rf
                  [root@linux67 /]# mkdi /oldboy && touch /oldboy/oldboy.txt || mkdir /oldboy
                  -bash: mkdi: command not found
                  [root@linux67 /]# ll -d /oldboy
                  drwxr-xr-x 2 root root 6 Nov  1 18:46 /oldboy
                  [root@linux67 /]# ll /oldboy
                  total 0`
            
    

    操作系统通配符号介绍:
    * 匹配任意字符信息
    find /oldboy -name "old"/".txt"/"old.txt"
    rm /oldboy/
    .txt /oldboy/oldboy*
    rm -rf ./* --- 清空目录中文件数据(清空可见文件)
    rm -rf ./.o* --- 删除以O打头的信息
    rm -rf ./.* --- 删除根目录下面所有数据信息

    {} 匹配序列信息
    1) 生成数字或者字母序列信息
    2) 生成组合序列信息
    [root@linux67 oldboy]# echo A{1..3}
    A1 A2 A3
    [root@linux67 oldboy]# echo {1..3}B
    1B 2B 3B

         > echo A{,3}
          A A3
          echo /oldboy/oldboy.txt{,.bak}
          快速备份:
          cp /oldboy/oldboy.txt  /oldboy/oldboy.txt.bak  --简化-- cp /oldboy/oldboy.txt{,.bak}
          快速恢复:
          cp /oldboy/oldboy.txt.bak /oldboy/oldboy.txt   --简化-- cp /oldboy/oldboy.txt{.bak,}                                                                                                                                           cp /oldboy/oldboy.txt.bak /操作系统正则符号
    

    准备操作环境:
    cat >> test.txt <<EOF
    I am oldboy teacher!
    I teach linux.

    I like badminton ball ,billiard ball and chinese chess!
    my blog is http://oldboy.blog.51cto.com
    our site is http://www.etiantian.org
    my qq num is 49000448.

    not 4900000448.
    my god ,i am not oldbey,but OLDBOY!
    EOF

    基础正则符号: BRE basic regular expression
    ^ --- 匹配以什么开头信息 ^xxx
    grep "^I" test.txt
    练习: 找出文件中以大写字母I开头的信息
    --- 匹配以什么结尾信息 grep "m" test.txt
    练习: 找出空行信息
    grep "^$" 文件 oldboy/oldboy.txt

    ``^$ 表示空行信息
         
        .  匹配任意一个且只有一个字符
           grep sed awk 处理文件时, 会按照每一行进行处理文件
           [root@linux67 oldboy]# grep "." test.txt -o
           I
            
           a
           m
            
           o
           l
           d
           [root@linux67 oldboy]# grep ".$" test.txt 
           I am oldboy teacher!
           I teach linux.
           mm
           I like badminton ball ,billiard ball and chinese chess!
           my blog is http://oldboy.blog.51cto.com
           our site is http://www.etiantian.org
           my qq num is 49000448.
           not 4900000448.
           my god ,i am not oldbey,but OLDBOY
           `
        *  匹配星号前面一个字符连续出现0次或者多次情况`
    
    `.* 匹配所有内容
        
        [] 匹配多个字符信息
           grep "[0-9]" test.txt 
           等价于:
           grep "0" test.txt
           grep "1" 
            
           [root@linux67 oldboy]# grep  "[0-9a-zA-Z]" test.txt
           I am oldboy teacher!
           I teach linux.
           mm
           I like badminton ball ,billiard ball and chinese chess!
           my blog is http://oldboy.blog.51cto.com
           our site is http://www.etiantian.org
           my qq num is 49000448.
           not 4900000448.
           my god ,i am not oldbey,but OLDBOY!`
         
      ` [^xx] 将匹配多个字符进行取反
           [root@linux67 oldboy]# grep  "[^0-9a-zA-Z]" test.txt
           I am oldboy teacher!
           I teach linux.
           I like badminton ball ,billiard ball and chinese chess!
           my blog is http://oldboy.blog.51cto.com
           our site is http://www.etiantian.org
           my qq num is 49000448.
           not 4900000448.
           my god ,i am not oldbey,but OLDBOY!`
           
        `\  转义符号
           1) 将有意义信息变得没有意义
              [root@linux67 oldboy]# grep  "\.$" test.txt
              I teach linux.
              my qq num is 49000448.
              not 4900000448.
           2) 将没有意义字符变得有意义
              \n  \r  --- 换行符
              \t
           3) 让扩展正则可以变为基础正则???`
        
    `   PS: 
        1) 正则符号使用时, 可以结合使用
        2) 正则符号做匹配时,有贪婪匹配特性
           解决贪婪:
           [root@linux67 oldboy]# grep "^I.*e ba" test.txt
           I like badminton ball ,billiard ball and chinese chess!
        
        扩展正则符号: ERE  extended regular expression`
    
    
       ` 通配符号 和 正则符号 区别:
        通配符号: 匹配文件名称信息  *   基础命令可以识别通配符号 find rm cp ll
        正则符号: 匹配文件内容信息      高级命令可以识别正则符号 grep sed awk`
    

    相关文章

      网友评论

          本文标题:Day16操作系统正则符号

          本文链接:https://www.haomeiwen.com/subject/xxtjbctx.html