Uma maneira de fazer isso com o shell:
for f in *; do
mv -- "$f" "${f%.key*}.key"
done
Tudo,
Eu tenho mexido com o comando for para remover padrões de nomes de arquivos em massa.
Nome do arquivo de exemplo:
:Common:CBE.key_44643_1
Eu posso usar o seguinte comando para remover a parte: Common:
for f in *; do mv "$f" "${f#:Common:}";done
Para a vida de mim eu não consigo o comando para remover tudo à direita de .key. Abaixo está minha tentativa
for f in *; do mv "$f" "$(?<=crt)(?s)(.*$);done
O comando é executado, mas não há alteração no arquivo. Eu estou correndo isso em um mac.
Uma maneira de fazer isso com o shell:
for f in *; do
mv -- "$f" "${f%.key*}.key"
done
Supondo que os nomes dos arquivos não contenham novas linhas ou barras invertidas:
for f in ./*
do
mv "$f" "$(echo "$f" | sed 's/key_.*$/key/')
done