This question already has answers here:
Delete everything before last / in bash

(3个答案)


2年前关闭。





我有一个看起来像这样的字符串:

hello/my/name/is/lebowski

我需要提取最后一个/(在本例中为lebowski)之后的字符串部分。我需要做的是Bash。我该如何实现?我可以使用正则表达式功能在Java或Python中执行此操作,但是我不知道如何通过Bash命令执行相同操作。

任何帮助,将不胜感激。谢谢!

最佳答案

通常,当您拥有看起来像目录路径的文本时,basenamedirname命令会派上用场。 basename为您提供不带前导路径的文件名(在本例中为lebowski),而dirname为您提供不带文件名的目录名(在本例中为hello/my/name/is/)。

无论哪种方式,它们都产生一个子进程。您可以使用变量替换来获取所需的内容,如下所示:

var="hello/my/name/is/lebowski"
name=${var##*/}


我建议阅读bash手册中有关替代的部分,以获取更多信息。

09-30 17:47
查看更多