Я недавно начал использовать 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, которая переименовывает файлы таким образом.
Заранее спасибо.
Ubuntu 16.04 должен поставляться как с исходным perl -, поставляемым prename
, так и с его более новой заменой rename
, каждый из которых должен работать со стандартнымsed
-подобным выражением подстановки
prename -n 's/(.*)@(.*)/$2$1/' *@*
или
rename -n 's/(.*)@(.*)/$2$1/' *@*
Вы также можете установить mmv
из репозитория и использовать
mmv -n "*@*" "#2#1"
Во всех случаях -n
является флагом отсутствия -операции для тестирования -удалите его, если вы абсолютно уверены, что он будет делать то, что вы хотите