You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shell脚本如何统计并打印当前日期不同错误信息及其出现次数

问题原因

你写的第三行命令存在逻辑错误:printf '%s' "ErrorMessageEventPersister" /home/dev/Medha/finalfile.txt会直接把「错误名字符串+文件路径字符串」拼接后输出给管道,管道后的grep仅统计这个拼接字符串里的匹配数,自然只会得到1,完全没有读取finalfile.txt的实际内容。

方案1:仅统计特定错误ErrorMessageEventPersister的出现次数

直接把文件作为grep的输入参数即可,不需要printf语句:

# 仅输出统计次数
grep -c "ErrorMessageEventPersister" /home/dev/Medha/finalfile.txt > final1.txt

# 输出「错误信息 出现次数」的格式
echo "ErrorMessageEventPersister $(grep -c "ErrorMessageEventPersister" /home/dev/Medha/finalfile.txt)" > final1.txt

方案2:统计所有不同错误信息的出现次数(匹配你最初的需求)

不需要拆分多步生成中间文件,一行命令即可完成全流程,大文件处理效率更高:

grep "$(date +"%y-%m-%d")" /home/dev/Medha/artim-session.log | grep "ERROR" | awk -F 'ERROR' '{print $2}' | sort | uniq -c | awk '{print $2" "$1}' > final1.txt

注:上面命令默认提取ERROR关键词之后的所有内容作为错误信息,如果你的错误信息是固定列的内容,可以把awk -F 'ERROR' '{print $2}'改成对应列的提取逻辑,比如错误信息在每行第5列就写awk '{print $5}'。

内容的提问来源于stack exchange,提问作者Medha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 14:57:01