如何修改awk命令获取日志中唯一用户名的迁移错误次数统计
日志统计命令优化
问题场景
有一个名为user-attribute-migration-log的应用日志文件,日志条目格式示例:
[01/14/2023 09:00:42 job100.company.com uuid 158461] Error in migrating attribute for username1 in function MigrateAttribute: API Error at ... [01/14/2023 09:02:15 job100.company.com uuid 158461] Error in migrating attribute for username2 in function MigrateAttribute: API Error at ... [01/14/2023 10:11:02 job100.company.com uuid 158461] Error in migrating attribute for username1 in function MigrateAttribute: API Error at ... [01/14/2023 11:34:15 job100.company.com uuid 158461] Error in migrating attribute for username1 in function MigrateAttribute: API Error at ... [01/14/2023 13:01:58 job100.company.com uuid 158461] Error in migrating attribute for username2 in function MigrateAttribute: API Error at ... [01/14/2023 13:02:47 job100.company.com uuid 158461] Error in migrating attribute for username3 in function MigrateAttribute: API Error at ...
需要统计每个唯一用户名的属性迁移错误次数,原使用的awk命令:
awk -F "Error in migrating attribute for[ ]" '{a[$2]++} END{for(i in a){print a[i],i | "sort -nr"}}' user-attribute-migration-log
当前输出包含多余的日志后缀内容:
3 username1 in function MigrateAttribute: API Error at ... 2 username2 in function MigrateAttribute: API Error at ... 1 username3 in function MigrateAttribute: API Error at ...
期望输出仅保留错误次数和用户名:
3 username1 2 username2 1 username3
修改后的命令
awk -F "Error in migrating attribute for | in function" '{a[$2]++} END{for(i in a){print a[i],i | "sort -nr"}}' user-attribute-migration-log
命令说明
- 调整awk的分隔符
-F,新增in function作为第二个分隔规则,让$2仅提取用户名部分,避免包含后续的日志冗余内容。 - 统计和排序逻辑保持不变,最终输出就能得到符合需求的简洁报告。
内容的提问来源于stack exchange,提问作者argo
相关产品推荐
相关产品推荐

