给定一个字符串文件路径,如 /foo/fizzbuzz.bar
,我如何使用 bash 提取所述字符串的 fizzbuzz
部分?
最佳答案
这是在 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 manual 中找到.查找 ${parameter%%word}
和 ${parameter%%word}
尾部匹配部分。
关于string - 如何从 Bash 中的路径字符串中删除文件后缀和路径部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52978223/