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

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

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

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

adunn-helloworld.tar.gz

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

24
задан Daeden
20.11.2022 7:53 Количество просмотров материала 3083
Распечатать страницу

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 2022-11-21 15:41

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх