Заменить определенную последовательность символов в именах файлов
Таким образом, мой друг сгруппировал тонны файлов в Windows
После того, как я заставил его переключиться на Ubuntu, файлы больше не упорядочены по количеству восклицательных знаков перед ними, поэтому я хотел бы знать, как я смогу переключать их, следуя этому правилу:
1
за!
а также!!
0
за!!!
а также!!!!
Я думаю, что я должен использовать awk, но я не эксперт, поэтому я здесь..
3 ответа
Для пакетного переименования файлов и каталогов с помощью GUI вы можете использовать GPRename.
Вы можете установить его с помощью:
sudo apt-get install gprename
В скрипте Python:
#!/usr/bin/env python3
import os
import shutil
import sys
dr = sys.argv[1]
replace = ["!", "!!", "!!!", "!!!!"]
for f in os.listdir(dr):
test = [f.startswith(s) for s in replace]
if test.count(True) > 2:
shutil.move(dr+"/"+f, dr+"/"+"0"+f.replace("!", ""))
elif 0 < test.count(True) < 3:
shutil.move(dr+"/"+f, dr+"/"+"1"+f.replace("!", ""))
Это заменит ведущий !!!!
а также !!!
от 0
, а также !!
а также !
от 1
предполагая !
встречается только в начале названия.
Использовать его
- вставьте скрипт в пустой файл, сохраните его как
rename.py
Запустите его из окна терминала командой:
python3 /path/to/rename.py '<directory>'
где
<directory>
каталог, содержащий файлы для переименования.
Вы также можете использовать Perl-based rename
команда например
rename -vn -- 's/^!{1,2}(?!!)/0/' *
соответствовать одному или двум !
символы, за которыми не следует !
в начале (^
) имени и названия 0
; а также
rename -vn -- 's/^!{3,4}(?!!)/1/' *
соответствовать трем или четырем !
символы, за которыми не следует !
в начале (^
) имени и названия 1
,
Обратите внимание -n
Переключатель позволяет вам выполнить "пробный запуск" без фактического изменения имен - сначала проверьте выражения и удалите n
если вы хотите продолжить.