Trim имена файлов Tarballs с помощью Bash

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

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

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

adunn-helloworld.tar.gz

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

5
задан Daeden
источник

1 ответов

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

$ 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
3
отвечен devnull 2014-04-05 05:21:32
источник

Другие вопросы bash bash-scripting filenames