1

Мне нужно оценить исходный код от разных студентов. Процесс отправки происходит через Blackboard, который добавляет к имени файла кучу ненужных вещей. Вот пример:

Test Submission_adunn_attempt_2014-04-04-10-48-37_adunn-helloworld.tar.gz

Я хотел бы переименовать этот файл (и все остальные) в:

adunn-helloworld.tar.gz

Как я могу сделать это в скрипте Bash?

1 ответ1

3

Вы можете использовать расширение параметров оболочки:

$ s="Test Submission_adunn_attempt_2014-04-04-10-48-37_adunn-helloworld.tar.gz"
$ echo "${s##*_}"
adunn-helloworld.tar.gz

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

for f in *.gz; do
  mv "$f" "${f##*_}"
done

В качестве альтернативы вы можете использовать prename (часть дистрибутива perl):

rename 's/.*_//' *.gz

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .