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

如何合并多段带不同选项的awk命令,提取指定字段生成CSV

合并awk命令实现多字段提取并输出CSV表格

需求说明

需要从指定格式的输入文本中提取以下内容,并输出带表头的CSV文件:

  • SPK:路径中第6个/分隔的字段
  • REPO:路径中第8个/分隔的字段
  • log4j-version:输入行中x.x.x格式的版本号
  • Timestamp:输入行中[]包裹的时间戳

输入文本示例:

/hosting/cbj/shared/master/jobs/TAIS/jobs/tais_aem_build/branches/feature-Dev/builds/214/log:[2022-06-23T07:23:56.117Z] ch.qos.logback.classic.log4j 0 1.2.3 com.baml.tais.tais_aem_build:jar:6.4.0

合并后的awk命令(输出CSV文件)

awk '
BEGIN {
    print "SPK,REPO,log4j-version,Timestamp"
    FS = " "
}
{
    # 拆分路径字段提取SPK和REPO
    split($1, path_arr, "/")
    spk_val = path_arr[7]
    repo_val = path_arr[9]
    
    # 提取[]中的时间戳
    match($1, /\[(.*)\]/, ts_arr)
    ts_val = ts_arr[1]
    
    # 遍历字段匹配版本号
    for (i=1; i<=NF; i++) {
        if ($i ~ /^[0-9]+\.[0-9]+\.[0-9]+$/) {
            ver_val = $i
            break
        }
    }
    
    # 输出CSV行
    print spk_val "," repo_val "," ver_val "," ts_val
}' input.txt > output.csv

命令解释

  • BEGIN块:输出CSV表头,设置字段分隔符为空格。
  • split($1, path_arr, "/"):将第一个路径字段按/拆分,取数组第7、9个元素作为SPK和REPO。
  • match($1, /[(.*)]/, ts_arr):用正则匹配路径中[]包裹的时间戳,存入数组后提取有效值。
  • 循环遍历字段:逐个检查所有字段,匹配x.x.x格式的版本号,找到后立即停止遍历。
  • 输出行:将四个提取字段用逗号分隔,重定向到目标CSV文件。

输出示例(output.csv内容)

SPK,REPO,log4j-version,Timestamp
TAIS,tais_aem_build,1.2.3,2022-06-23T07:23:56.117Z

若需输出Markdown表格格式

修改命令如下:

awk '
BEGIN {
    print "| SPK | REPO | log4j-version | Timestamp |"
    print "|-----|------|---------------|-----------|"
    FS = " "
}
{
    split($1, path_arr, "/")
    spk_val = path_arr[7]
    repo_val = path_arr[9]
    match($1, /\[(.*)\]/, ts_arr)
    ts_val = ts_arr[1]
    for (i=1; i<=NF; i++) {
        if ($i ~ /^[0-9]+\.[0-9]+\.[0-9]+$/) {
            ver_val = $i
            break
        }
    }
    print "| " spk_val " | " repo_val " | " ver_val " | " ts_val " |"
}' input.txt

对应的Markdown表格输出:

SPKREPOlog4j-versionTimestamp
TAIStais_aem_build1.2.32022-06-23T07:23:56.117Z

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 07:36:20