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

标签 string bash filenames

给定一个字符串文件路径,如 /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/

相关文章:

python - “int”对象不可迭代

java - 编写 bash 脚本来运行 java 程序

bash - 使用 bash 将所有图像设置为横向

python - 在文件夹中搜索包含子字符串的文件,python?

c - 区分可选参数、路径名或文件? c语言

c++ - 转义 C++ 字符串

c++ - 用一行代码替换字符串中所有句点的 C++ 方法?

c# - 在 C# 中的某个特定字符后获取值

perl - 如何使用 bash 或 Perl 重新格式化 mbox 文件中的消息?