我有一个填充了文件名和路径的 bash 变量:
SONG="~/Music/Mine/Cool Title Bro.flac"
为了使标记变得更加容易,我对变量进行了一些转换以隔离标题:
echo "${SONG#\~/Music/Mine/}" # which prints: Cool Title Bro.flac
我知道也可以删除后缀${SONG%%.flac}
.
但是是否可以在一次操作中同时删除前缀和后缀?
这个:
${SONG#\~/Music/Mine/%%.flac}
可能不起作用,因为它试图将文字%%.flac
作为前缀的一部分进行匹配。反过来不行(%%.flac#~/[...]
),我什至发疯了,尝试
${${SONG#~/Music/Mine/}%%.flac}
这也不起作用。
这可能是我过度设计的一个典型例子,但如果有办法做到这一点,那就太好了,我只是还没有弄清楚。