Shell 循环中实现展示进度百分比的脚本方法

当我需要处理一个几万行的文件的时候,需要处理的时间是比较长的。我一开始的想法是,没处理一行,就输出一个 # 号。但是这样还是会出现很多很多的 # 号,即便是放在一行,也是非常不优雅的。所以,我想实现一个展示进度百分比的脚本。
实现思路
就是这些需求了。我们来逐渐实现。
获取文件的行数
这个比较简单,用 wc -l $file 就能获取到了。但是得到的结果我不是很满意:
999 3.log
在结果的前面有几个空格,我得把空格去掉,于是代码就改成了
wc -l $file | sed 's/^[ \t]*//g'
这样就去掉了开头的空格,然后用空格分割,取第一个就可以了,cut来实现
wc -l $file | sed 's/^[ \t]*//g' | cut -d ' ' -f1
OK,通过几个命令的组合,很容易的实现了获取行数的数字。
echo 实现单行显示
echo -en '\b\b\b\b'
如上,就是将光标提前四个位置,并录入内容。\b是提前一个,输入几个就几个,如果已经到了开头了,就不能往前挪了,所以,多输入几个是没问题的。
最终实现代码如下:
# 定义变量 i i=1 # 获取 3.log 这个文件的行数,并把运行结果赋予变量 l l=$(wc -l 3.log | sed 's/^[ \t]*//g' | cut -d ' ' -f1) # 每行遍历循环 while read line; do # 输出百分比 echo -en "\b\b\b\b"`echo $i*100/$l | bc `'%' # 计算 i++ ((i++)) # 传入 3.log 这个要处理的文件 done < 3.log # 完成时打个OK,因为字符长度不足以遮盖原先的百分比,所以后面加了几个空格 echo -e '\b\b\b\bOK '
实现效果如下
好,通过简单的几行代码,就实现了我想要的效果了。
以上脚本均在 mac 下测试通过,在 Linux 下可能会有稍许不同。
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Linux
# Shell循环中实现展示进度百分比
# Shell进度条
# linux shell常用循环与判断语句(for
# while
# until
# if)使用方法
# Linux Shell在目录下使用for循环结合if查找文件的巧用
# linux shell中实现循环日期的实例代码
# 对Linux下shell编程之for循环的实例讲解
# linux shell 中数组的定义和for循环遍历的方法
# Linux shell 实现用for循环100次的方法
# Linux shell数组循环的实例详解
# Linux shell编程中IO和条件及循环处理的细节问题讨论
# linux shell循环:for、while、until用法详解
# 几个
# 行数
# 实现了
# 我想
# 我要
# 会有
# 放在
# 第一个
# 就能
# 如有
# 我一
# 遍历
# 当我
# 很容易
# 希望能
# 掉了
# 有几个
# 就不能
# 就去
# 打个
相关文章:
购物网站制作公司有哪些,哪个购物网站比较好?
建站之星如何实现五合一智能建站与营销推广?
建站10G流量真的够用吗?如何应对访问高峰?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
C#如何在一个XML文件中查找并替换文本内容
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
如何用PHP快速搭建高效网站?分步指南
打鱼网站制作软件,波克捕鱼官方号怎么注册?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
如何配置IIS站点权限与局域网访问?
如何在建站主机中优化服务器配置?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
,柠檬视频怎样兑换vip?
建站之星后台管理:高效配置与模板优化提升用户体验
开源网站制作软件,开源网站什么意思?
网站设计制作企业有哪些,抖音官网主页怎么设置?
建站之星在线版空间:自助建站+智能模板一键生成方案
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
如何在建站宝盒中设置产品搜索功能?
如何零基础在云服务器搭建WordPress站点?
建站之星如何修改网站生成路径?
如何快速生成可下载的建站源码工具?
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
如何高效搭建专业期货交易平台网站?
做企业网站制作流程,企业网站制作基本流程有哪些?
小建面朝正北,A点实际方位是否存在偏差?
黑客入侵网站服务器的常见手法有哪些?
如何用低价快速搭建高质量网站?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
建站主机选虚拟主机还是云服务器更好?
实现虚拟支付需哪些建站技术支撑?
如何在阿里云ECS服务器部署织梦CMS网站?
建站之星如何一键生成手机站?
如何用虚拟主机快速搭建网站?详细步骤解析
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
制作网站的公司有哪些,做一个公司网站要多少钱?
成都网站制作报价公司,成都工业用气开户费用?
建站之星如何取消后台验证码生成?
PHP 500报错的快速解决方法
高端智能建站公司优选:品牌定制与SEO优化一站式服务
建站之星下载版如何获取与安装?
建站主机选购指南与交易推荐:核心配置解析
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
怎么将XML数据可视化 D3.js加载XML
C++中引用和指针有什么区别?(代码说明)
攀枝花网站建设,攀枝花营业执照网上怎么年审?
如何使用Golang table-driven基准测试_多组数据测量函数效率
如何高效完成自助建站业务培训?
如何快速搭建高效服务器建站系统?
*请认真填写需求信息,我们会在24小时内与您取得联系。