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

如何在Nushell中基于现有列新增tags列提取文件名标签?

解决方案

直接用Nushell的ls结合update和字符串正则提取就能实现需求,以下是具体代码:

ls | update tags { |row| $row.name | str extract '\[(.+?)\]' 1 } | select name tags type size modified

代码解释

  • ls:获取当前目录的文件/目录列表,返回结构化表格数据。
  • update tags { ... }:新增tags列,闭包内处理每一行的name字段:
    • $row.name:引用当前行的文件名/目录名字段。
    • str extract '\[(.+?)\]' 1:用正则捕获组提取括号内的内容:
      • 正则\[(.+?)\]里的()定义了第一个捕获组,专门匹配[]包裹的文本(\[和\]是转义后的括号,避免被正则解析为特殊符号);
      • 参数1指定提取第一个捕获组的结果,没有匹配到标签时会返回空字符串,正好对应无标签的条目。
  • select name tags type size modified:重新调整列的顺序,让tags列紧跟在name之后,和你期望的输出结构一致。

额外扩展

如果需要筛选出带有标签的文件/目录,可以在命令末尾追加:

| where tags != ''

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 18:15:51