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