You need to enable JavaScript to run this app. Unix下如何提取脚本启动行之间的日志并分别存入对应命名文件
优惠活动
大模型
产品
解决方案
定价
更多

Unix下如何提取脚本启动行之间的日志并分别存入对应命名文件

错误原因
  • 原命令的多管道拼接逻辑存在设计错误,管道输出的脚本名列表没有被后续awk命令读取,awk直接读取原始日志文件,完全没用到前面的处理结果
  • awk代码用单引号包裹时,内部的shell变量$col不会被解析,无法识别匹配规则
  • 你试图用循环匹配的逻辑完全可以用awk单步状态机实现,不需要额外的grep、sed、cut等命令拼接
可行实现方案

直接执行如下awk命令即可:

awk '/Running: / {
    if (output_file) close(output_file)
    output_file = $NF
    next
}
{ print >> output_file }' allreport.txt

命令逻辑说明

  • 当匹配到含Running: 的脚本启动行时:先关闭上一个正在写入的文件,避免打开过多文件句柄报错;将当前行的最后一个字段(即脚本名)设为新的输出文件名;跳过当前启动行,不写入任何文件
  • 所有非启动行的日志内容,直接追加写入当前的输出文件中

执行效果

执行完成后会生成4个和脚本名同名的文件:

  • first_script:存储第一个脚本运行期间的2条日志
  • second_script:存储第二个脚本运行期间的2条日志
  • third_script:存储第三个脚本运行期间的2条日志
  • fourth_script:为空文件,对应示例中该脚本启动后无后续日志的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 18:36:04