У меня есть переменная 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}
, что тоже не работает.
Это может быть ярким примером чрезмерной инженерии с моей стороны, но было бы отлично, если бы существовал способ сделать это, а я просто еще не придумал его.