我必须从文件中获得一定的数量。我使用的 grep 语句是这样的:
counter_pstn=0
completed_count_pstn=0
rec=0
for rec in `(grep "merged" update_completed*.log | awk '{print $1}' | sed 's/ //g' | cut -d':' -f2)`
do
if [ $counter_pstn -eq 0 ]
then
completed_count_pstn=$rec
else
completed_count_pstn=$(($completed_count_pstn+$rec))
fi
counter_pstn=$(($counter_pstn+1))
done
echo "Completed Orders PSTN Primary " $completed_count_pstn
但是日志文件包含这种格式的数据:
2500 rows merged.
2500 rows merged.
2500 rows merged.
2500 rows merged.2500 rows merged.
2500 rows merged.
2500 rows merged.
结果,它错过了一次合并的计数(例如在输出的第 4 行)。我如何修改 grep 或使用另一个函数来获取计数。请注意,2500 数字可能用于不同的日志。所以我们必须使用“合并的行”模式来获取计数。我试过 -o ,-w grep 选项,但它不起作用。
上述数据的预期输出:
17500
实际输出显示:
15000