shell 编程统计两个文件行数百分比

本文分享了一种通过Shell脚本优化重复命令执行的方法,利用数组和循环结构提高任务处理效率,展示了如何计算两个文件行数比并输出百分比。

今日心血来潮,突然感觉shell中重复的命令让人昏昏欲睡,故有此产出:

直接上干货,我的执行脚本如下:

#!/bin/bash
. ./subscript.txt
for info in ${array[@]}
do
    fstr=`echo $info | cut -d \; -f 1`
    sstr=`echo $info | cut -d \; -f 2`
    yp=`cat ${fstr}|wc -l`
    cf=`cat ${sstr}|wc -l`
    result=`awk 'BEGIN{printf "%.2f%\n",'$yp'/'$cf'*100}'`
    echo $info'已跑:'$result
done

而我引用的文件内部放了一个array数组,内容如下:

array=('limit_of_range_result.txt;../config/limit_of_range_sql.txt' 'limit_of_range_result.txt;../config/limit_of_range_sql.txt' 'limit_of_range_result.txt;../config/limit_of_range_sql.txt')

是使用前面的文件行数除去后面文件行数的百分百

 

因为用notepad++编辑,其中抛出一个不太专业的异常

syntax error near unexpected token `do

 

只需要 编辑->文档格式转换->转换为unix格式

异常完美解决;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值