MST
星途 面试题库

面试题:复杂Bash脚本的日志分析与处理

现有一个大型应用的日志文件`big_app.log`,其中包含不同模块的日志。日志格式为'模块名:时间戳:日志级别:日志信息'。要求编写一个Bash脚本,能够筛选出特定模块(例如'user - auth'模块)在特定时间段(例如最近一小时内,假设日志中的时间戳为标准时间格式)内的所有错误级别(ERROR)日志,并将这些日志按时间顺序输出到一个新文件`filtered_errors.log`中,同时在脚本执行结束后输出筛选出的日志总数。
41.4万 热度难度
编程语言Bash

知识考点

AI 面试

面试题答案

一键面试
#!/bin/bash

# 获取当前时间的一小时前
one_hour_ago=$(date -d "1 hour ago" +%Y-%m-%d\ %H:%M:%S)

# 筛选特定模块在特定时间段内的错误级别日志并输出到新文件
grep 'user - auth:' big_app.log | grep "ERROR" | awk -F':' '$2 >= "'$one_hour_ago'"' | sort -k 2 > filtered_errors.log

# 输出筛选出的日志总数
count=$(wc -l < filtered_errors.log)
echo "筛选出的日志总数: $count"