Этого можно достичь с помощью утилиты Perl rename
, которая в зависимости от вашей системы может называться rename
, prename
или perl-rename
.В Debian и Ubuntu его можно установить следующим образом:
sudo apt install rename
Обратите внимание, что в некоторых системах команда rename
может быть rename
в Perl, а в других - util-linux
.rename
и для других это может быть GNU rename
.Эти инструменты не совместимы друг с другом.
Инструмент Perl rename
в Debian и Ubuntu можно использовать следующим образом:
prename 's/expression/substitution/' filenames...
Или применить ко всем файлам в текущем каталоге:
prename 's/expression/substitution/' *
Полезной функцией Perl rename
является возможность использовать регулярные выражения (обратите внимание, что поддерживаемый синтаксис похож на синтаксис sed
).
В вашем случаерегулярное выражение, совпадающее с префиксом ваших имен файлов до первого знака подчеркивания и включающее его, выглядит следующим образом:
^[^_]*_
Затем его можно заменить пустой строкой, чтобы удалить эту часть имени файла, что приведет кследующая команда:
prename 's/^[^_]*_//' *
Перед запуском этой команды, если вы не уверены и хотите проверить, что файлы будут переименованы так, как вы хотите, вы можете добавить флаги -vn
следующим образом:
prename -vn 's/^[^_]*_//' *
Это не будет переименовывать какие-либо файлы, а вместо этого выведет список файлов, которые будут переименованы, например:
$ prename -vn 's/^[^_]*_//' *
Myanalysis_x_xx_xx_xxx_x_x.csv -> x_xx_xx_xxx_x_x.csv
Myattempt_xx_x_xxxx.csv -> xx_x_xxxx.csv
Mycase_xxx_x_xxx.csv -> xxx_x_xxx.csv
Mycase_xxx_x_xxx_xx_x.csv -> xxx_x_xxx_xx_x.csv