Пример:
Имеем первый сезон Декстера:
$ ls -1
Dexter - 101 - Dexter.avi
Dexter - 102 - Crocodile.avi
Dexter - 103 - Popping Cherry.avi
Dexter - 104 - Lets Give the Boy a Hand.avi
Dexter - 105 - Love American Style.avi
Dexter - 106 - Return to Sender.avi
Dexter - 107 - Circle of Friends.avi
Dexter - 108 - Shrink Wrap.avi
Dexter - 109 - Father Knows Best.avi
Dexter - 110 - Seeing Red.avi
Dexter - 111 - Truth Be Told.avi
Dexter - 112 - Born Free.avi
Хотим убрать все, кроме номера эпизода.
Говорим:
for i in Dexter*; do mv "$i" $(echo $i | sed 's/.*\([0-9]\{3\}\).*/\1.avi/'); done
И получаем то, что хотели:
ls *.avi -1
101.avi
102.avi
103.avi
104.avi
105.avi
106.avi
107.avi
108.avi
109.avi
110.avi
111.avi
112.avi
Это стандартный цикл, в котором файлы переименовываются в провернутые через sed свои имена. Круглые и фигурные скобки приходится фильтровать для bash.