У меня есть несколько сотен файлов с именем hortstu01-01-14, а затем hortstu01-02-14 ... У вас есть идея?
Ну, половина файлов называется hortstu_01-03-14, а затем hortstu_01. -04-14
.Это приводит к неправильной сортировке файлов по имени и получению их в порядке, который я бы предпочел. Поэтому я бы хотел переименовать те, которые не имеют подчеркивания, в hortstu_
Возможно ли сделать это в пакетной операции? Если так, то как?
Откройте терминал. Во-первых, двойная проверка у Вас есть жемчуг rename
, путем ввода man rename
. Внизу, должно сказать это perl v5.18.2
или подобный. (Я думаю, что Ubuntu всегда поставляет жемчуг rename
, но другие дистрибутивы поставляют другие версии.)
Если это - правильная версия, то cd
к каталогу, который содержит эти файлы. Затем выполненный
rename 's/^hortstu/hortstu_/' hortstu[!_]*
hortstu[!_]*
. Это означает файлы, которые запускаются с hortstu
, и не имейте _
далее.^hortstu
(т.е. hortstu
в начале строки)hortstu_
.hortstu[!_]*
шарик удара. Формат для ^hortstu
регулярное выражение.Или Bash, по которому один лайнер перемещается к папке с файлами и затем выполняет это в терминале:
for file in hortsu*;do echo "$file" "${file/_/-}";done;
В основном то, что это делает, для файлов с именем 'hortsu' сопровождается любыми символами '* ', повторите название "$file" и также название файла со всеми подчеркиваниями, замененными тире. Когда Вы чувствуете себя довольными в тот, просто заменяют echo
cp
для копирования файлов в новое имя.
А pythonic решение.
Попытка это в безопасном environement, возможно, скопируйте один или два файла в новую папку, чтобы протестировать, как она работает.
Сохраняют следующий код в gedit и дают ему имя с расширением файла '.py' что-то как rename_files_in_current_directory.py
:
# copy this code into gedit and save it to the directory with the files in it
import os
# for files in the current directory ('.')
for file_names in os.listdir('.'):
if '_' in file_names:
# using os.system use cp (copy) to copy file_names to file-names by replacing
# underscore with dash
os.system('cp '+file_names+' '+file_names.replace('_','-'))
Удостоверяются, что Python установлен. 'склонные sudo - добираются, Python установки'
Перейдите к папке в терминале со сценарием и файлами и затем работайте:
python the_name_given_to_the_python_script.py
Примечание:
можно удалить тире в вышеупомянутых командах, и сценарии удалят подчеркивания.
for file in hortsu*;do cp "$file" "${file/_/}";done;
или в изменении сценария Python:
file_names.replace('_','-')
к file_names.replace('_','')
Для тех, кто предпочитает приложения GUI или точно так же, как способность предварительно просмотреть результат, Вы могли бы хотеть установить Thunar. Это - основной файловый менеджер XFCE; Вы находите его в репозиториях.
, Когда Вы выбираете несколько файлов в Thunar и переименовываете их (через контекстное меню или F2), Вы получаете тщательно продуманное диалоговое окно, которые поддерживают все виды, переименовывают операции. Можно решить проблему как так: