SHELL编程----打印每一行出现的数字个数

描述

写一个bash脚本,统计一个文本文件nowcoder.txt中每一行出现的1~5数字的个数,并且计算一下整个文档中一共出现了几个1~5数字的总数。

示例:
假设 nowcoder.txt 内容如下:
a12b8
10ccc
2521abc
9asf
你的脚本应当输出:
line1 number: 2
line2 number: 1
line3 number: 4
line4 number: 0
sum is 7

说明:
不要担心你输出的空格以及换行的问题

示例1

输入:
a12b8
10ccc
2521abc
9asf
复制
输出:
line1 number: 2
line2 number: 1
line3 number: 4
line4 number: 0
sum is 7

具体代码实现:

#!/bin/bash

sum=0
line=0
while read p
do
    let line++
    num=$(echo $p | grep -oE '[1-5]' | wc -l )
    echo "line$line number: $num"
    let sum+=$num
done <nowcoder.txt
echo "sum is $sum"

解题思路:

1.使用whlie read 变量名 的语法来读取文件中的内容

2.定义num变量来接受提取的内容并进行加工处理

3.使用grep 过滤内容,-o:只提取匹配的内容,-E使用扩展正则表达式;wc -l 统计行数

4.按要求输出



作者:牛客103369704号
链接:题解 | #打印每一行出现的数字个数#_牛客网
来源:牛客网

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值