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

技术问询:如何将单行带时间戳的多条目转换为列格式

嘿,我来帮你搞定这个文本格式转换的需求!这里有两个实用的方法,不管你习惯用命令行工具还是脚本语言都能轻松解决:

方法1:用AWK快速处理(终端首选)

AWK天生擅长处理这种按字段拆分的文本任务,你可以直接用下面的命令完成转换:

先把你的输入内容保存成input.txt文件,然后执行这个一行命令:

awk 'BEGIN{FS=", "}{ts=$1;for(i=2;i<=NF;i++){split($i,p," ");print ts", "p[1]}}' input.txt > output.txt

简单解释下逻辑:

  • FS=", ":把字段分隔符设为逗号加空格,这样每行内容会被拆成独立的字段
  • 把第一字段(也就是时间戳加DEFAULT的部分)存为ts变量
  • 从第二个字段开始循环,每个字段是Proc_m0_sx DEFAULT,用split按空格拆分后取第一个部分(就是你要的Proc开头的字符串)
  • 最后把时间戳部分和Proc字符串拼接起来打印,结果直接输出到output.txt里

方法2:用Python脚本(灵活自定义)

如果更熟悉Python,写个小脚本也很方便,还能随时调整逻辑:

# 读取输入文件,写入转换后的内容到输出文件
with open("input.txt", "r") as infile, open("output.txt", "w") as outfile:
    for line in infile:
        # 去掉每行首尾的空白字符,跳过空行
        cleaned_line = line.strip()
        if not cleaned_line:
            continue
        # 按逗号加空格拆分每行内容
        line_parts = cleaned_line.split(", ")
        # 提取时间戳部分
        timestamp_section = line_parts[0]
        # 遍历每个Proc项,拆分后写入新行
        for proc_entry in line_parts[1:]:
            proc_name = proc_entry.split()[0]
            outfile.write(f"{timestamp_section}, {proc_name}\n")

运行这个脚本后,output.txt里就会生成你想要的目标格式啦!

测试验证

用你给出的输入内容测试,两种方法都会输出完全符合要求的结果:

20180127200000 DEFAULT, Proc_m0_s1
20180127200000 DEFAULT, Proc_m0_s2
20180127200000 DEFAULT, Proc_m0_s3
20180127200001 DEFAULT, Proc_m0_s1
20180127200001 DEFAULT, Proc_m0_s2
20180127200001 DEFAULT, Proc_m0_s3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:31:06