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

使用Awk+Printf处理autorep输出异常:多行合并及缺省字段填充求助

解决autorep输出的Job行合并与缺失字段补全问题

针对你遇到的两个核心问题,直接给出修改后的Shell脚本(核心基于awk处理),并说明关键逻辑:

autorep -J ALL | awk '
BEGIN {
    # 初始化所有字段为N/A,确保缺失字段有默认值
    job_name = "N/A"
    date_cond = "N/A"
    condition = "N/A"
    run_window = "N/A"
    # 打印格式化表头
    printf "%-20s %-15s %-30s %-20s\n", "Job Name", "Date Conditions", "Condition", "Run Window"
    printf "%s\n", "-------------------------------------------------------------------------------"
}

# 匹配Job起始行,触发上一个Job的输出并重置字段
/^Job Name:/ {
    if (job_name != "N/A") {  # 跳过初始状态,避免空行输出
        printf "%-20s %-15s %-30s %-20s\n", job_name, date_cond, condition, run_window
    }
    # 重置所有字段为初始状态,准备处理新Job
    job_name = "N/A"
    date_cond = "N/A"
    condition = "N/A"
    run_window = "N/A"
    # 提取当前Job名称
    split($0, arr, ": ")
    job_name = arr[2]
    next
}

# 匹配Date Conditions字段并赋值
/^Date Conditions:/ {
    split($0, arr, ": ")
    date_cond = arr[2]
    next
}

# 匹配Condition字段并赋值
/^Condition:/ {
    split($0, arr, ": ")
    condition = arr[2]
    next
}

# 匹配Run Window字段并赋值
/^Run Window:/ {
    split($0, arr, ": ")
    run_window = arr[2]
    next
}

# 处理最后一个Job,避免遗漏输出
END {
    if (job_name != "N/A") {
        printf "%-20s %-15s %-30s %-20s\n", job_name, date_cond, condition, run_window
    }
}
'

关键逻辑说明:

  1. 解决行合并问题:以Job Name:行作为每个Job的分割标记,每次识别到新Job时,先输出上一个Job的完整信息,再重置字段处理新Job,确保每个Job单独成行。
  2. 解决缺失字段问题:所有字段初始化为N/A,仅当匹配到对应字段行时才覆盖赋值,未匹配到的字段保持N/A。
  3. 格式化输出:用printf固定字段宽度,保证输出对齐美观。

预期输出示例:

Job Name             Date Conditions   Condition                      Run Window            
-------------------------------------------------------------------------------
JOB_BACKUP_DB        0                 N/A                           N/A                  
JOB_SYNC_FILES       1                 FILE_READY                    WINDOW_OFFPEAK       
JOB_CLEAN_LOG        0                 N/A                           N/A                  

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 17:20:26