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

posted @   豆浆D  阅读(201)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示