首页 > 解决方案 > 如何在最后一个“/”字符之后获取一个字符串?

问题描述

我试图在最后一个“/”字符之后获取一个字符串。问题是,“/”的数量可以不同。例子:

Desktop/Picures/test.txt -> test.txt
Templates/DIR1/DIR2/DIR2/test2 -> test2
d1/d2/d3/d4/d5/d6 -> d6

...等等,你明白了。我怎样才能做到这一点?(顺便说一句,我也需要将结果设置为变量。)

标签: bash

解决方案


使用参数扩展。

for path in Desktop/Picures/test.txt \
            Templates/DIR1/DIR2/DIR2/test2 \
            d1/d2/d3/d4/d5/d6 ; do
    echo "${path##*/}"
done

##*/从左边删除最长的匹配模式。模式是*/,即它将删除直到最后一个斜杠的所有内容。


推荐阅读