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

如何将Databricks CLI命令输出用于其他Unix命令

正确实现方案

你要的存储匹配结果到变量的需求,直接用管道串联databricks命令和grep即可,参考写法:

# 替换<profile_name>和<pattern>为你实际的配置和匹配规则即可
matched_jars=$(databricks fs ls dbfs:/fs/jars/ --profile <profile_name> | grep "<pattern>.*\.jar")

之前写法的错误原因

  • 第一,grep默认使用正则匹配规则,不是shell通配符规则,你直接写*<pattern>*.jar且不加引号,首先shell会先在本地当前路径匹配符合通配符的文件,替换参数后再传给grep,完全不会匹配dbfs返回的文件名
  • 第二,输入输出方向搞反:你需要把databricks fs ls的输出作为grep的输入,用管道|串联即可,不需要混用管道和输入重定向,更不需要额外加cat

验证与扩展

你可以先执行以下命令确认匹配结果是否符合预期:

databricks fs ls dbfs:/fs/jars/ --profile <profile_name> | grep "<pattern>.*\.jar"

如果存在多个匹配结果需要逐个处理,可以用如下循环:

while read -r jar_name; do
  # 此处写你针对每个jar包的后续操作逻辑,比如拷贝、部署等
  echo "找到匹配包:$jar_name"
done <<< "$matched_jars"

注意:如果你的匹配规则<pattern>中包含正则特殊字符(比如.、*、?等),需要在特殊字符前加反斜杠\转义,避免匹配结果不符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:57:02