zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    一本通 P1806 计算器
    英语单词
    Dubbo springboot注解
    java连接zookeeper集群
    zookeeper集群
    入住博客园!
    解决 windows MySQL安装过程中提示计算机丢失vcruntime140_1.dll
    django 订单并发修改库存乐观悲观锁
    毒鸡汤
    Java反射机制
  • 原文地址:https://www.cnblogs.com/soymilk2019/p/11905485.html
Copyright © 2011-2022 走看看