• sed查找实例:mysql_process.sh


    标准

    #!/bin/bash
    #
     
    FILE_NAME=/home/roo/Desktop/shell_code/day6/my.cnf
    # 获取所有的片段
    function get_all_segments
    {
        echo `sed -n '/[.*]/p' $FILE_NAME | sed -e 's/[//g' -e 's/]//g'`
    }
    # 统计单个片段 配置行数
    function count_items_in_segment
    {
        # 找到[xxx]并且下一个 [.*] 的项中间的内容就是一段配置
        items=`sed -n '/['$1']/,/[.*]/p' "$FILE_NAME" | grep -v "^$" | grep -v "^#" | grep -v "[.*]"| wc -l`
        echo $items
        # for 循环打印并计算my.cnf每一行的配置,适合配置项之间没有空格的情况
        #index=0
        #for item in $items;
        #do
        #    index=`expr $index + 1`
        #done
     
        #echo $index
     
    }
     
    number=0
    for segment in `get_all_segments`
    do
        number=`expr $number + 1`
        # 将每个片段当做参数传进来计算
        items_count=`count_items_in_segment $segment`
        echo "$number: $segment $items_count"
    done

    自己写的

    #!/bin/bash
    #
    
    #定义文件变量
    
    FILE_NAME=/tmp/my.cnf
    
    #列出各个段的函数
    
    function get_all_segments
    
    {
    echo `sed -n '/[/p' $FILE_NAME | sed -e 's/[//g' -e 's/]//g'`
    } 
    
    #查找段有多少参数的函数
    
    function count_items_in_segment
    
    {
    items=`sed -n "/[$1]/,/^[/p" $FILE_NAME | grep -v "^#" | grep -v "^$" | grep -v "^[" | wc -l`
    echo $items
    }
    
    #加入计数器
    
    number=0
    
    #遍历段并输出参数和的循环
    
    for segment in `get_all_segments`
    
    do
    number=`expr $number + 1`
    items_count=`count_items_in_segment $segment`
    echo "$number: $segment $items_count"
    done

     更多:https://www.cnblogs.com/crazymagic/p/11147518.html

  • 相关阅读:
    有用网站
    html5页面布局总结
    video和audio支持格式
    关于浏览器缓冲
    java常见面试题汇总
    jvm常用相关参数
    规律字符串拼接
    线程基础知识
    Kafka学习
    Redis学习
  • 原文地址:https://www.cnblogs.com/soymilk2019/p/11905485.html
Copyright © 2020-2023  润新知