изменить часть имени файла grep или переименовать

У меня есть разные файлы с именами

"type_featAtype_featB"

и

"type_featAtype_featC"

Мне нужно все это

"type_featA"

заменены на

"НАЧАЛО"

так что новые имена папок будут называться

«STARTtype_featB»

и

STARTtype_featC "

.

Я смотрел функцию переименования здесь и здесь

Однако не все мои файлы имеют одинаковый суффикс, на самом деле все они имеют разные суффиксы, как показано в примере.

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

Спасибо заранее за любую помощь.


person owwoow14    schedule 23.10.2013    source источник
comment
Как замена type_featA на START преобразует type_featAtype_featB в STARTtypeDM_featB?   -  person devnull    schedule 23.10.2013
comment
Человеческая ошибка: см. Отредактированный вопрос   -  person owwoow14    schedule 23.10.2013


Ответы (3)


Предполагая, что у вас есть утилита rename, которая является частью дистрибутива perl, вы могли бы сказать:

rename 's/^type_featA/START/' *

для достижения желаемого результата.

person devnull    schedule 23.10.2013

Более загадочным вариантом было бы использование SED - я полагаю, что вы бы выбрали это, если бы у вас не было доступа к функции переименования perl (которая, я признаю, более краткая и ясная):

ls * | sed -e 'p;s/^type_featA/START/' | xargs -n2 mv

person baordog    schedule 23.10.2013
comment
Мне нравится эта загадочная версия ;-) - person oHo; 23.10.2013

ответ devnull правильный. Вы даже можете написать:

rename 's/^type_featA/START/' my_folder/type_featA*

Эта командная строка переименовать идеально подходит для Debian и других производных раздачи.

Но в других дистрибутивах может использоваться другой инструмент переименовать как для Fedora, RedHat и CentOS. Во втором случае правая командная строка:

rename type_featA START my_folder/type_featA*

Этот второй инструмент переименовать заменит только первое type_featA вхождение .

person oHo    schedule 23.10.2013