#!/bin/bash

OLD_IFS=$IFS
IFS=$'\n'
i=1
sum=0
for line in $(cat nowcoder.txt)
do
    #echo "$line" | grep -Po '[1-5]{1}'
    nums=$(echo "$line" | grep -Po '[1-5]{1}' | wc -l)
    echo "line${i} number: $nums"
    i=`expr $i + 1`
    sum=`expr $sum + $nums`
done
echo "sum is $sum"
IFS="$OLD_IFS"

默认IFS为空格,这里将其临时更改为换行符,并于脚本最后再将其改回去。

通过echo "$line" | grep -Po '[1-5]{1}'将每一行的1-5给匹配出来。