This question already has answers here:
Delete everything before last / in bash
(3个答案)
2年前关闭。
我有一个看起来像这样的字符串:
我需要提取最后一个
任何帮助,将不胜感激。谢谢!
我建议阅读
(3个答案)
2年前关闭。
我有一个看起来像这样的字符串:
hello/my/name/is/lebowski
我需要提取最后一个
/
(在本例中为lebowski
)之后的字符串部分。我需要做的是Bash。我该如何实现?我可以使用正则表达式功能在Java或Python中执行此操作,但是我不知道如何通过Bash命令执行相同操作。任何帮助,将不胜感激。谢谢!
最佳答案
通常,当您拥有看起来像目录路径的文本时,basename
和dirname
命令会派上用场。 basename
为您提供不带前导路径的文件名(在本例中为lebowski
),而dirname
为您提供不带文件名的目录名(在本例中为hello/my/name/is/
)。
无论哪种方式,它们都产生一个子进程。您可以使用变量替换来获取所需的内容,如下所示:
var="hello/my/name/is/lebowski"
name=${var##*/}
我建议阅读
bash
手册中有关替代的部分,以获取更多信息。