给定一个字符串文件路径,例如/foo/fizzbuzz.bar,我将如何使用 bash 仅提取fizzbuzz所述字符串的一部分?
/foo/fizzbuzz.bar
fizzbuzz
以下是如何使用 Bash 中的 # 和 % 运算符来完成此操作。
$ x="/foo/fizzbuzz.bar" $ y=${x%.bar} $ echo ${y##*/} fizzbuzz
${x%.bar}也可以${x%.*}是删除一个点之后的所有内容或${x%%.*}删除第一个点之后的所有内容。
${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}尾随部分匹配部分。
${parameter%word}
${parameter%%word}