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

如何从命令输出提取时间戳与工作流名称并优化处理?

仅用cut实现需求的方案

1. 提取时间戳和工作流名称

你的输入内容用空格分隔成了两个部分:第一部分是时间戳,第二部分是斜杠分隔的路径字符串。通过两次cut组合就能提取目标内容:

echo "2022-08-05T06:30:00.503053001Z projects/12345/locations/europe-west4/workflows/workflow_name/executions/a1f339e1-XXXX" | cut -d' ' -f1,2 | cut -d'/' -f1,6
  • 第一步cut -d' ' -f1,2:以空格为分隔符,提取第1个(时间戳)和第2个(完整路径)字段;
  • 第二步cut -d'/' -f1,6:以斜杠为分隔符,从第一步结果里提取第1个(时间戳)和第6个(workflow_name)字段;
    最终输出:
2022-08-05T06:30:00.503053001Z workflow_name

2. 同时去除时间戳的毫秒精度

要把时间戳简化到秒级(去掉.503053001部分),可以拆分输入字段后分别处理:

echo "2022-08-05T06:30:00.503053001Z projects/12345/locations/europe-west4/workflows/workflow_name/executions/a1f339e1-XXXX" | while read ts path; do
  trimmed_ts=$(echo "$ts" | cut -d'.' -f1)Z
  workflow=$(echo "$path" | cut -d'/' -f6)
  echo "$trimmed_ts $workflow"
done
  • 对时间戳用cut -d'.' -f1截取.之前的秒级部分,手动补上Z;
  • 对路径用cut -d'/' -f6提取工作流名称;
    最终输出:
2022-08-05T06:30:00Z workflow_name

补充说明

如果用的是GNU cut(支持--output-delimiter参数),也可以用更紧凑的写法:

input="2022-08-05T06:30:00.503053001Z projects/12345/locations/europe-west4/workflows/workflow_name/executions/a1f339e1-XXXX"
echo "$(echo "$input" | cut -d' ' -f1 | cut -d'.' -f1)Z $(echo "$input" | cut -d'/' -f6)"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 10:33:17