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

如何用Bash脚本将["1.2.1","1.9.2"]转为("1.2.1" "1.9.2")

Bash字符串格式转换解决方案

错误原因分析

你之前使用的命令${MY_TAGS//[[\], .!]}是基于字符集匹配的全局替换,会删除所有属于[、]、\、,、.、!范围内的字符,导致版本号里的.被移除,最终得到无意义的数字串,完全偏离了需求。

两种可行解决方法

方法1:纯Bash参数替换(无需外部工具)

# 定义原始字符串
MY_TAGS='["1.2.1","1.9.2"]'

# 替换开头的[为(
temp=${MY_TAGS/[/(}
# 替换结尾的]为)
temp=${temp/]/)}
# 全局替换","为" ",实现版本号之间的空格分隔
result=${temp//\",\"/\" \"}

# 输出结果
echo "$result"

执行后直接输出:("1.2.1" "1.9.2")

方法2:使用sed工具处理

MY_TAGS='["1.2.1","1.9.2"]'
result=$(echo "$MY_TAGS" | sed -e 's/^\[/(/' -e 's/\]$/)/' -e 's/","/" "/g')
echo "$result"

sed命令的作用分别是:

  • s/^\[/(/:匹配行首的[并替换为(
  • s/\]$/)/:匹配行尾的]并替换为)
  • s/","/" "/g:全局匹配","并替换为" "

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 23:27:09