• Shell 正则及其命令


    目录

    一、sort

     二、uniq

     三、tr

      四、cut

     五、paste

     六、正则表达式  

    1.元字符

     2.次数

    3.扩展


    一、sort

    1. sort排序
    2. 基本用法:
    3. sort   选项   文件
    4. 默认以字符排序(a b c d),如果第一个字母相同,比较第二个,以此类推

     

    1. -t指定分隔符
    2. -k指定需要排序的列
    3. -n以数字形式排序
    4. -r反向排序
    5. -u去重

                               

     二、uniq

    1. uniq 去重
    2. uniq 选项... 文件…....
    3. 基本功能:只能将连续的重复去掉
    4. -c 统计字符出现的次数
    5. 后面是字符数字前面是出现的次数
    6. -d 只显示有连续重复的行
    7. -u 只显示出现1次的行(2个及2个以上不显示)
    8.  

     三、tr

    1. 基本功能是转换
    2. 只要出现 d e f 就转换成 2 6 8
    3. 当转换数值不足时,一直转换成最后一个
    4. 实际应用:将文件中的所有小写转换成大写
    5. -d删除匹配到的字符
    6. -s 压缩 将连续的数字8压缩成1个数字8
    7. -c反向取值

     

     

      四、cut

    1. cut 切片 提取需要的列
    2. cut [选项] [文件]
    3. -d 指明分隔符
    4. -f 指明需要的列数

    实际应用

     

    1. wc
    2. wc 选项 目标文件
    3. 统计列数,wc本身就是参数 word
    4. -l: 统计行数
    5. -w: 统计单词个数
    6. -C: 统计字节数
    7. 注意空行和换行符

     五、paste

    -d 指定分隔符

     综合应用

    cat nginx.access.log-2021013 |cut -d" " -f1

     

    cat nginx.access.log-2021013 |cut -d" " -f1|sort

     

    cat nginx.access.log-2021013 |cut -d" " -f1|sort -n|uniq -c
    

    cat nginx.access.log-2021013 |cut -d" " -f1|sort -n|uniq -c|sort -nr
    

    cat nginx.access.log-2021013 |cut -d" " -f1|sort -n|uniq -c|sort -nr|head

     cat nginx.access.log-2021013 |awk '{print $1}'|sort -n|uniq -c|sort -nr|head

     六、正则表达式  

             REGEXP: Regular Expressions,由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符)不表示字符字面意义,而表示控制或通配的功能,类似于增强版的通配符功能,但与通配符不同,通配符功能是用来处理文件名,而正则表达式是处理文本内容中字符。
            正则表达式被很多程序和开发语言所广泛支持: vim, les,grep,sed,awk, nginx,mysql等,主要用来匹配字符串(命令结果,文本内容),通配符匹配文件(而且是已存在的文件)

            find 命令支持通配符   vim 命令支持正则表达式
            基本正则表达式
            扩展正则表达式

    1.元字符

    .       匹配任意单个字符,可以是一个汉字
    []      匹配指定范围内的任意单个字符
    [^]    匹配指定范围外的任意单个字符
    如果 . 写在[ ]就是 . 不需要转义     转义 .  \.  代表转义

     

     

     

     

     

     2.次数

    (1) *           匹配前面的字符任意次,包括0次,贪婪模式:尽可能长的匹配
    (2) .*          任意长度的任意字符
    (3) \?          匹配其前面的字符出现0次或1次,即:可有可无
    (4) \+          匹配其前面的字符出现最少1次,即:肯定有且>=1次
    (5) \{n\}       匹配前面的字符n次(精确匹配)
    (6) \{m,n\}   匹配前面的字符至少m次,至多n次
    (7) \{,n\}      匹配前面的字符至多n次,<=n
    (8) \{n,\}      匹配前面的字符至少n次

     

     

    3.扩展

    *         匹配前面字符任意次
    ?        0或1次
    +        1次或多次
    {n}      匹配n次
    {m,n}  至少m,至多n次
    {,n}     匹配前面的字符至多n次, <=n,n可以为0
    {n,}     匹配前面的字符至少n次, >=n,n可以为0

    实际应用

  • 相关阅读:
    中国人民大学与加拿大女王大学金融硕士——人生下半场,用实力为自己“撑腰”
    [pdf]软件方法上册第二版自测题答案和解析-共144页
    高电压放大器与高电流放大器该如何选择使用
    [附源码]Python计算机毕业设计Django校园帮平台管理系统
    mac vscode没有写入权限/无法自动更新
    ubuntu bind9 主从配置
    PT_二维随机变量:正态分布的可加性
    DBA常用命令和数据库设计三范式
    分布式事务理论以及解决方案
    搞定面试官 - 可以介绍一下 MySQL InnoDB 引擎的索引模型嘛?
  • 原文地址:https://blog.csdn.net/Drw_Dcm/article/details/126191610