在shell脚本中获取子字符串

der*_*dji 4 string shell

如果我有一个字符串,some/unknown/amount/of/sub/folder/file.txt我怎么才能得到file.txt子字符串,删除前面部分,而长度是未知的.

谢谢

编辑:文件名可以是任何长度,子文件夹可以是任何级别.

Ste*_*ini 13

$ basename "some/unknown/amount/of/sub/folder/file.txt"
file.txt
Run Code Online (Sandbox Code Playgroud)

要通常提取子字符串,可以使用此语法

$ hello="abcdef"
$ echo ${hello:1:3}
bcd
Run Code Online (Sandbox Code Playgroud)


Wil*_*ell 5

虽然我同意正确的答案是调用basename,但在bash中你也可以使用##从变量的开头删除字符串中出现的最长字符串.

bash-3.2$ t=/this/is/a/path
bash-3.2$ echo ${t##*/}
path