描述
写一个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号
链接:题解 | #打印每一行出现的数字个数#_牛客网
来源:牛客网