Day16操作系统正则符号

操作系统基础符号介绍:
  `  . .. > >> < << ! \ ~ - ...`
    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 <
逻辑符号系列:     `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 < 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开头的信息
" 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操作系统正则符号)