Мой друг сгруппировал таким образом кучу файлов в Windows.
После того, как я заставил его перейти на Ubuntu, файлы больше не сортируются по количеству восклицательных знаков перед ними, поэтому я хотел бы узнать, как мне переключить их, следуя этому правилу:
1
для!
и!!
0
для!!!
и!!!!
Думаю, мне следует использовать awk, но я не эксперт, поэтому я здесь...
решение1
Для пакетного переименования файлов и каталогов с помощью графического интерфейса можно использоватьGPRename.
Вы можете установить его с помощью:
sudo apt-get install gprename
решение2
В скрипте 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>
находится каталог, содержащий файлы для переименования.
решение3
Вы также можете использовать команду на основе Perl, rename
например:
rename -vn -- 's/^!{1,2}(?!!)/0/' *
для соответствия одному или двум !
символам, за которыми не следует символ «a» !
в начале ^
имени ( ), исзаменитель 0
; и
rename -vn -- 's/^!{3,4}(?!!)/1/' *
для соответствия трем или четырем !
символам, за которыми не следует символ «a» !
в начале ^
имени ( ), исзаменитель 1
.
ПРИМЕЧАНИЕ: -n
переключатель позволяет выполнить «пробный прогон» без фактического изменения имен — сначала проверьте выражения и удалите , n
если хотите продолжить.