小编典典

如何从 Bash 中的路径字符串中删除文件后缀和路径部分?

all

给定一个字符串文件路径,例如/foo/fizzbuzz.bar,我将如何使用 bash 仅提取fizzbuzz所述字符串的一部分?


阅读 129

收藏
2022-03-14

共1个答案

小编典典

以下是如何使用 Bash 中的 # 和 % 运算符来完成此操作。

$ x="/foo/fizzbuzz.bar"
$ y=${x%.bar}
$ echo ${y##*/}
fizzbuzz

${x%.bar}也可以${x%.*}是删除一个点之后的所有内容或${x%%.*}删除第一个点之后的所有内容。

例子:

$ x="/foo/fizzbuzz.bar.quux"
$ y=${x%.*}
$ echo $y
/foo/fizzbuzz.bar
$ y=${x%%.*}
$ echo $y
/foo/fizzbuzz

文档可以在Bash 手册中找到。寻找${parameter%word}${parameter%%word}尾随部分匹配部分。

2022-03-14