标准

#!/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 '/\['$'\]/,/\[.*\]/p' "$FILE_NAME" | grep -v "^$" | grep -v "^#" | grep -v "\[.*\]"| wc -l`
echo $items
# for 循环打印并计算my.cnf每一行的配置,适合配置项之间没有空格的情况
#index=
#for item in $items;
#do
# index=`expr $index + `
#done #echo $index } number=
for segment in `get_all_segments`
do
number=`expr $number + `
# 将每个片段当做参数传进来计算
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= #遍历段并输出参数和的循环 for segment in `get_all_segments` do
number=`expr $number + `
items_count=`count_items_in_segment $segment`
echo "$number: $segment $items_count"
done

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

最新文章

  1. Android笔记——AsyncTask介绍
  2. JAVA多态
  3. ORA-01861: 文字与格式字符串不匹配
  4. CoordinatorLayout自定义Bahavior特效及其源码分析
  5. 应用服务器Glassfish任意文件读取漏洞
  6. json转换对象 对象属性首字母为大写会出错 可以用以下方法
  7. VMware Workstation 10.0.4.2249910 CN
  8. Java中的匿名对象
  9. UVA - 140 Bandwidth(带宽)(全排列)
  10. 屌丝技能--转Json(Newtonsoft.Json.dll)
  11. nodejs 路径
  12. js实现黑客帝国文字下落效果
  13. VS2010安装MVC4记录
  14. MySQL存储过程中实现执行动态SQL语句
  15. 轮播插件swiper
  16. [转帖]pfSense软路由系统的使用
  17. B. Equations of Mathematical Magic
  18. 10.1-uC/OS-III任务堆栈空间
  19. demoshow - webdemo展示助手
  20. [eclipse]添加python默认模板,在首行添加编码方式(# -*- coding: utf-8 -*-)

热门文章

  1. C#linq计算总条数并去重复的写法
  2. git Windows终端安装教程
  3. 20191126PHP连接数据(1)
  4. 浅谈使用canvas绘制多边形
  5. [php] phar
  6. springboot--异步执行的方法及定时执行的方法
  7. tuple写法
  8. 对Promise的研究3
  9. vue的响应接口
  10. 一波儿networkx 读写edgelist,给节点加attribute的操作