how to batch rename files in terminal - move text in file name from end of file name to front

Я недавно начал использовать wget для загрузки файлов.

Я использую ubuntu 16 mate для работы с файлами.

Я создаю пользовательские url, чтобы включить определенную информацию, которую я хочу сохранить в имени загружаемого файла, как показано ниже:

  http://website.com/file.txt?title_Three_little_pigs_user_spinach_

Если я загружаю url с помощью Firefox и Downthemall, используя маски переименования для добавления строк запроса к имени файла, мне удается получить:

  Three_little_pigs_user_spinach_file.txt

Если я загружу те же урлы с помощью wget (который, похоже, не поддерживает маски переименования), я получу:

  file.txt@title_Three_little_pigs_user_spinach_

Есть ли способ пакетного переименования файлов следующим образом:

До:

  file.txt@title_Three_little_pigs_user_spinach_

После:

  title_Three_little_pigs_user_spinach_file.txt

Я хочу переместить текст после @ в начало, а затем удалить @.

У меня много файлов, которые я хочу переименовать в терминале в ubuntu - если бы я мог добавить это в сценарий bash, это было бы здорово.

Я использую ubuntu и windows, и я не нашел программу windows, которая переименовывает файлы таким образом.

Заранее спасибо.

0
25.06.2017, 20:33
1 ответ

Ubuntu 16.04 должен поставляться как с исходным perl -, поставляемым prename, так и с его более новой заменой rename, каждый из которых должен работать со стандартнымsed-подобным выражением подстановки

prename -n 's/(.*)@(.*)/$2$1/' *@*

или

rename -n 's/(.*)@(.*)/$2$1/' *@*

Вы также можете установить mmvиз репозитория и использовать

mmv -n "*@*" "#2#1"

Во всех случаях -nявляется флагом отсутствия -операции для тестирования -удалите его, если вы абсолютно уверены, что он будет делать то, что вы хотите

0
28.01.2020, 04:44

Теги

Похожие вопросы