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

如何在Miller的cut命令中使用位置字段名

用Miller CLI按字段序号截取记录的方法

你之前的猜测没错:$[[n]]这种位置字段名仅在put、filter这类支持Miller表达式的命令中可用,cut命令的-f参数不支持直接用位置序号。要实现按字段序号保留字段,可以用以下两种方法:

方法1:结合字段名获取命令与cut

先提取目标位置的字段名,再用cut保留该字段:

# 提取第2个字段的名称
target_field=$(echo s=green,t=red,a=3,b=4 | mlr --nidx head -n 1 | tr ',' '\n' | sed -n '2p')
# 用cut保留该字段
echo s=green,t=red,a=3,b=4 | mlr cut -f "$target_field"

执行后会输出:t=red

方法2:用put命令直接操作位置字段

利用put支持位置引用的特性,保留指定位置的字段并删除其他字段:

echo s=green,t=red,a=3,b=4 | mlr put '
  # 遍历所有字段位置,保留第2个,删除其余
  for (idx, name in @[]) {
    if (idx != 2) {
      unset @[idx];
    }
  }
'

同样会输出:t=red

如果要保留多个位置的字段(比如第2、4个),只需修改判断条件为if (idx not in [2,4])即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 08:50:55