• shell脚本学习(五)


    1、统计文件的行数、单词数、字符数

      1)行数:

          wc -l file

           cat file | wc -l

      2)单词数

         wc -w file

         cat file | wc -w

      3)统计字符数

         wc -c file

         cat file | wc -c

     4)不跟任何参数时,三者都打印,打印顺序为行数、单词数、字符数

         wc file

         hbg@root:~/dl$ wc a.txt
           6  6 36   a.txt

         hbg@root:~/dl$ cat a.txt
        apple
        gold
        iron
        orange
        silver
        steel
     hbg@root:~/dl$

       5)打印文件中最长一行

           wc -L file

    2、正则表达式

       1) “?”用于匹配单词前后可能出现的空格

              例如:要匹配给定文本中的所有单词,可以使用下面的正则表达式:

                     ( ?[a-zA-Z]+ ?)            [a-zA-Z]代表一个字母或者多个字母(a-z 和 A-Z)

       2)正则表达式                  描述                    示例

           ^                              行起始标记                                              ^tux匹配以tux起始的行

           $                     行尾标记                                             tux$匹配以tux结尾的行

           .              匹配任意一个字符               hack. 匹配hackl和hacki,但是不能匹配hackl2和hacki1,它只能匹配单个字符

           []           匹配包含在[字符]之中的任意一个字符           coo[kl] 匹配cook 或 cool

           [^]            匹配除[^字符]之外的任意一个字符        9[^01] 匹配92、93,但是不匹配90和91

           [-]             匹配[]中指定范围内的任意一个字符               [1-5]匹配从1~5的任意一个数字

           ?           匹配之前的项一次货0次                colou?r匹配 color或colour但是不能匹配colouur

           +          匹配之前项一次或多次            rollno-9+匹配rollno-99、rollno-9,但是不能匹配rollno-

           *                             匹配之前的项0次或多次            co*l 匹配 cl、col、cooool等

           ()           创建一个用于匹配的子串            ma(tri)?x匹配 max 或 matrix

           {n}          匹配之前的项n次                [0-9]{3}匹配任意一位3位数,可以扩展为[0-9][0-9][0-9]

           {n,}         之前的项至少需要匹配n次          [0-9]{2,}匹配任意一个两位或更多位的数字

           {n,m}       指定之前的项必须匹配的最小次数和最大次数      [0-9]{2,5}匹配一个2位数到5位数之间的任意一个数字

           |          交替--匹配 | 两边的任意一项         Oct (1st | 2nd) 匹配Oct 1st或Oct 2nd

                                       转义符可以将上面介绍的特殊字符进行转义         a.b匹配 a.b,但不能匹配ajb。通过在.之前加上前缀\,从而忽略了.的特殊意义     

             

  • 相关阅读:
    系统编码、文件编码与python系统编码
    python2判断编码格式
    android: 对apk进行系统签名
    android: 对普通的apk应用进行签名
    android studio: 设置单条注释不换行
    Gradle: Could not determine the dependencies of task ':app:processDebugResources'解决(转)
    android Dialog: 去除dialog 顶部 蓝色的线
    android:Error:” ” is not translated in “en” (English) [MissingTranslation]处理方法(转)
    android: 通过Intent筛选多种类型文件
    GIt: git rebase 和 git merge 的区别 (转)
  • 原文地址:https://www.cnblogs.com/rohens-hbg/p/5089849.html
Copyright © 2020-2023  润新知