Um amigo meu agrupou vários arquivos dessa maneira no Windows
Depois que eu fiz ele mudar para o Ubuntu, os arquivos não são mais ordenados com base no número de pontos de exclamação na frente, então eu gostaria de saber como eu poderia trocá-los seguindo esta regra:
1
Para!
e!!
0
Para!!!
e!!!!
Acho que deveria usar o awk, mas não sou um especialista, portanto aqui estou.
Responder1
Para renomear arquivos e diretórios em lote com GUI, você pode usarGPRenome.
Você pode instalá-lo com:
sudo apt-get install gprename
Responder2
Em um script 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("!", ""))
Ele substituirá o início !!!!
e !!!
por 0
e !!
e !
por 1
, assumindo que !
ocorre apenas no início do nome.
Para usá-lo
- cole o script em um arquivo vazio, salve-o como
rename.py
Execute-o em uma janela de terminal pelo comando:
python3 /path/to/rename.py '<directory>'
onde
<directory>
está o diretório que contém os arquivos a serem renomeados.
Responder3
rename
Você também pode usar o comando baseado em perl, por exemplo
rename -vn -- 's/^!{1,2}(?!!)/0/' *
para corresponder a um ou dois !
caracteres não seguidos por um !
no início ( ^
) do nome eésubstituto 0
; e
rename -vn -- 's/^!{3,4}(?!!)/1/' *
para corresponder a três ou quatro !
caracteres não seguidos por um !
no início ( ^
) do nome, eésubstituto 1
.
NOTA: a -n
opção permite que você faça uma 'simulação' sem realmente alterar os nomes - teste as expressões primeiro e remova-as n
se quiser continuar.