Можно ли применить два преобразования сопоставления шаблонов в одной операции?

У меня есть переменная 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}

, что тоже не работает.

Это может быть ярким примером чрезмерной инженерии с моей стороны, но было бы отлично, если бы существовал способ сделать это, а я просто еще не придумал его.

7
задан Shahbaz 21 June 2012 в 08:55
поделиться