获取另一个字符的第一个实例之前的所有字符

获取另一个字符的第一个实例之前的所有字符

说我有

npmv="3.4.5";

获取第一个点之前的所有字符的最简单方法是什么?在这种情况下,这将是“3”?

答案1

npmv="3.4.5"
major=${npmv%%.*}

printf 'The major version number is %s\n' "$major"

参数替换${variable%%pattern}将删除最长pattern与 的值匹配的后缀字符串$variable。该模式被视为文件名通配模式,而不是正则表达式。这是一个标准参数替换,适用于所有 POSIX shell。

同样的事情,但使用单个将仅删除示例中字符串的%结尾(.5最短匹配后缀模式)。对于前缀字符串,请使用#代替%

也可以看看POSIX 标准中有关参数扩展的部分,以及您的 shell 手册。

相关内容