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

如何从Linux下mc ilm rule ls命令输出中提取ID列表?

提取MinIO ILM规则ID的方法

在Linux环境执行mc ilm rule ls myminio/receive后得到如下输出:

┌───────────────────────────────────────────────────────────────────────────────────────┐
    │ Expiration for latest version (Expiration)                                            │
    ├──────────────────────┬─────────┬────────┬──────┬────────────────┬─────────────────────┤
    │ ID                   │ STATUS  │ PREFIX │ TAGS │ DAYS TO EXPIRE │ EXPIRE DELETEMARKER │
    ├──────────────────────┼─────────┼────────┼──────┼────────────────┼─────────────────────┤
    │ cf59qti8ufll86j92g │ Enabled │ -      │ -    │             90 │ false               │
    │ cf7701klgt9a0vts40 │ Enabled │ -      │ -    │             90 │ false               │
    │ cf7712tlgie49qo4p0 │ Enabled │ -      │ -    │             90 │ false               │

需要提取仅包含ID的列表,预期输出:

cf59qti8ufll86j92g  
cf7701klgt9a0vts40  
cf7712tlgie49qo4p0

以下是几种实现方式:

  • 使用awk处理
    利用awk按字段分割,跳过表头和分隔线后提取ID列,同时清理多余空格:

    mc ilm rule ls myminio/receive | awk -F'│' 'NR>4 {gsub(/^[ \t]+|[ \t]+$/, "", $2); print $2}'
    

    说明:

    • -F'│' 以│作为字段分隔符
    • NR>4 跳过前4行(表头和分隔线)
    • gsub 命令去除ID前后的空格
    • 最后输出处理后的ID字段
  • 结合grep和sed提取
    先过滤出含ID的行,再精准提取ID字符串:

    mc ilm rule ls myminio/receive | grep -E '│ [a-z0-9]+ │' | sed -E 's/^.*│ ([a-z0-9]+) .*$/\1/'
    

    说明:

    • grep 匹配符合ID格式(小写字母+数字)的行
    • sed 用正则捕获并提取中间的ID部分
  • 用cut多步过滤
    先截取目标列,再逐步清理无效内容:

    mc ilm rule ls myminio/receive | cut -d'│' -f2 | sed '/^[ \t]*$/d' | sed '1,3d' | sed 's/^[ \t]*//;s/[ \t]*$//'
    

    说明:

    • cut 截取第二列内容
    • 第一个sed 删除空行
    • 第二个sed 删除前3行表头
    • 第三个sed 去除ID前后的空格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:15:47