【发布时间】:2015-09-04 10:14:06
【问题描述】:
我正在编写一个 bash 脚本,该脚本将解析一个完整的字符串名称,以便为我提供固件值。 例如,原始字符串名称将类似于:
Example_v0p1
期望的输出:
0.1
我的函数的第一部分根据下划线值分隔字符串,并将数组的第二个元素设置为一个名为版本的变量:
arr=(`echo $1| tr '_' ' '`)
version=${arr[1]}
使用我提供的示例,$version 现在等于“v0p1”。我正在寻找一种方法来进一步解析这个字符串,以便它看起来像所需的输出。
如果可能的话,我希望解决方案能够处理相同格式的多个变体,以便我可以对所有可能生成的版本代码使用相同的脚本。然而,语法总是相同的。 v#p#{p#p#....} 例子:
v0p1p1
v3p2p0p1
v1p3
期望的输出:
0.1.1
3.2.0.1
1.3
我不确定解决此问题的最佳方法。我对 REGEX 的经验不足以完成此操作,并且我无法想出合适的方法来解析字符串,因为它们的长度会不同。
【问题讨论】:
标签: string bash shell parsing delimiter