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

如何用Shell脚本过滤日志文件,保留进程计数>0的条目及服务器信息

日志过滤Shell脚本解决方案

需要处理input-data-file.log,过滤掉所有计数为0或空数组[]的进程状态条目,同时保留服务器会话的上下文信息(如命令行、退出信息等),最终输出到output-data-file.log。

解决方案脚本

awk '
# 标记是否处于需要过滤进程条目的区块
in_process_block = 0

# 匹配服务器命令行或退出相关行,直接输出,并重置区块标记
/^\[user@SERVER/ || /exit$/ || /logout$/ || /Connection to SERVER/ {
    print $0
    in_process_block = 0
    next
}

# 匹配"Data loading lists...",直接输出,并标记进入进程区块
/^Data loading lists...$/ {
    print $0
    in_process_block = 1
    next
}

# 处于进程区块时,过滤掉0或空数组的条目
in_process_block {
    if (!/: 0$/ && !/: \[\]$/) {
        print $0
    }
}
' input-data-file.log > output-data-file.log

脚本逻辑说明

  • 上下文保留:直接输出服务器会话的命令行(如[user@SERVER-1 bin]$ ./script.sh)、退出相关行(exit、logout、连接关闭信息),确保服务器信息完整保留。
  • 区块标记:当遇到Data loading lists...时,标记进入进程状态条目区块,开始过滤操作。
  • 过滤规则:在进程区块内,只保留不匹配: 0(计数为0)和: [](空数组)的行,自动排除无效条目。
  • 完整输出:所有符合条件的内容直接写入output-data-file.log。

运行方式

  1. 将上述脚本保存为filter-log.sh
  2. 赋予执行权限:
    chmod +x filter-log.sh
    
  3. 执行脚本生成目标文件:
    ./filter-log.sh
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:35:01