• linux符号与正则表达式


    特殊符号

       >    或者1>   标准输出重定向 先把文件的内容清空  再放入新的内容

         >> 或   2>>  追加重定向  把内容放入文件的最后一行

                      1     表示执行正确的内容才能通过漏斗

         2>                标准错误重定向   错误的内容才能通过漏斗 

         2>>              错误追加重定向   eho hello >>/data/oldboy.txt   2>&1 对的错的都放入文件中

           <                 输入重定向  给文件能容分列xargs -n2 </data/num.txt  把文件内容分为两列

           <<               追加输入重定向 逐行输入内容

                               cat >>/data/oldboy.txt<<EOF

                               I
                               am
                               studying-
                               linux
                               EOF

         ~                    当前用户的家目录 root  ~  ==/root       oldboy~ ===/home/oldboy

          !                    查找并运行历史命令 !awk 包含awk的命令 运行最近的一条

                                                                    history |grep awk awk历史命令

         #                    注释   或root用户的命令提示符

         $                    取出变量的内容

                                awk  $取出某一行的内容   或普通用户的命令提示符

         *                      表示所有

                               转义字符  或撬棍

                                 换行符

                                 单词边界

                                 回车

                                 横向制表符

                                . 普通字符小数点消除.点的正则

         &&                  前一个命令执行成功然后执行后一个命令

         ||                      前一个命令执行失败再执行后面的命令

         

         $(    )      ()里的结果留下交给前面的命令处理 #cp   $(find /app/logs/ -type f -name "*.log")   /tmp/a/

         $(    )=== `` 反引号

          '   '         不具有变量置换功能,输出时所见即所得

          "  "          具有变量置换功能,解析变量输出

          ;              多条命令同时依次执行 相互不依赖

         {  }            生成序列 # echo {1..10}   echo stu{01..10} 用作备份cp   oldboy.txt{,.bak}

    正则表达式

    基础正则BRE  grep 、sed 、awk 

         ^       以某某字符开头

         $       以某个字符结尾

         ^$     表示空行 不是空格

         .        点表示任意字符

         *       重复上一个字符0次或>=1次

         .*      表示所以字符

         ^.*     以任意多个字符开头

         .*$    以任意多个字符结尾

         [   ]    匹配字符串内的任意一个字符,如[abc]匹配a或b或c,[a-z]匹配所有小写字母

         [^  ]   匹配不包含字符串内的任意字符,取反

         

    扩展正则ERE  egrep、sed -r、awk

         +      重复上一个字符一次或一次以上,常与[ ]使用  [0-9]+匹配连续数字

         ?      重复上一个字符0次或者一次

         {n,m}重复前面a字符n到m次

         {n, }   重复前面a字符至少n次

         { ,m}  重复前面a字符最多m次

         {n}     重复前面a字符n次

         (  )     分组过滤,如()内的内容为一个整体;反向引用:如1表示引用第一个()里面的内容

         |         匹配左边字符或者右边字符

         

    使用举例 执行命令取出 linux 中 eth0 的 IP 地址

          [root@oldboyedu01-nb ~]# ifconfig eth0|awk 'NR==2'

                    inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0

         [root@oldboyedu01-nb ~]# ifconfig eth0|awk 'NR==2'|awk '{print $2}'

                  addr:10.0.0.200
         [root@oldboyedu01-nb ~]# ifconfig eth0|awk 'NR==2'|awk '{print $2}'|awk
     -F":" '{print $2}'
    10.0.0.200 

     或者1 # ifconfig eth0|awk -F "[: ]+" 'NR==2{print $4}'

             2# ifconfig eth0|sed -n '2p'|sed -r 's#^.*dr:(.*)  Bc.*$#1#g'

             3#ifconfig  eth0|sed  -nr  '2s#^.*dr:(.*)  Bc.*$#1#gp'

    如何取得/etc/hosts 文件的权限

         stat /etc/hosts |awk 'NR==4'          

         Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/root)

        stat /etc/hosts |awk -F "[(/]" 'NR==4{print $2}'

        0644

        stat /etc/hosts |sed -nr '4s#^.*(([0-9]+).*$#1#gp'

        0644

        stat -c%a /etc/hosts

        0644

       使用小结 sed 反向引用  awk指定分割符   

          

             

  • 相关阅读:
    POJ:2431-Expedition
    poj:3253-Fence Repair
    POJ:3617-Best Cow Line(贪心)
    IOS各种传值方式
    imageDownloader
    Android放大镜的实现
    Delphi 串口通信(1)
    UVA 10131
    Skew Join与Left Semi Join相关
    Android动画 fillAfter和fillBefore
  • 原文地址:https://www.cnblogs.com/cqzhou/p/8491063.html
Copyright © 2020-2023  润新知