我有一个像 package-0.0.1.jar 这样的包名称,我需要从该字符串中删除版本信息以及以 .jar 结尾的文件。我怎样才能实现这个目标?我发现你可以使用“%”符号来剪切字符串的一部分。所以我尝试了
JNAME="package-0.0.1.jar"
CLEAN="${JNAME%-.*\.jar}"
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用,因为 CLEAN 之后具有完整的 JNAME 内容。% 符号后面的正确顺序是什么?
%
带/的扩展#
不使用正则表达式;他们使用 shell glob。仅用于-*.jar
匹配版本和后缀。
CLEAN=${JNAME%-*.jar}\n
Run Code Online (Sandbox Code Playgroud)\n如果需要正则表达式,可以使用Bash 的[[ a =~ b ]]
和${BASH_REMATCH[\xe2\x80\xa6]}
(尽管在本例中不需要):
if [[ $JNAME =~ ^(.+)-[^-]+\\.jar$ ]]; then\n CLEAN=${BASH_REMATCH[1]}\nfi\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
351 次 |
最近记录: |