Вы были близки, но не совсем:
rename -n 's/\[[^\]]+\]//' *.mp3
Проблема в том, что []
- это специальная конструкция регулярного выражения, и поэтому скобки необходимо экранировать, если они должны соответствовать действительным скобкам. Это цель обратной косой черты в моей версии.
Неэкранированные скобки образуют так называемый символьный класс.Класс символов может в основном соответствовать любому из символов в скобках. Итак, [. *]
соответствует точке или звездочке. Когда вы добавляете курсор ( ^
) в начало класса, он соответствует любому символу , но не в скобках.
В моем регулярном выражении мы сопоставляем открывающую скобку \ [
плюс один или несколько символов, которые не являются закрывающими скобками [^ \]] +
плюс закрывающая скобка \]
и удаление всего этого.