Como retirar algum texto dos nomes de arquivos em uma pasta?
Atualmente, estou tentando:
rename s/"NEWER_(.*?)"//g *
Mas nada que seja renomeado
Eu tenho uma pasta pai, com um monte de subpastas, dentro de arquivos, que o OneDrive pensou que seria uma boa idéia anexar um "(NEWER_timestamp)" e gostaria de removê-lo.
Nomes de arquivo de exemplo:
getyou.ico (NEWER_1417529079.87)
o7pm.ico (NEWER_1417529184.89)
o7th.ico (NEWER_1417529135.81)
rename
batch-rename
Kevin
fonte
fonte
Respostas:
Tente o seguinte:
[^/]*(.*) .*$
corresponde apenas à última parte do caminho que não contém a/
. E(.*)
há um grupo de correspondência de tudo após o último/
e antes de um espaço. Sua referência posterior será
$1
..*$
corresponde a tudo no final$
do nome dos arquivos após o espaço.s/.../REPLACEMENT/
, mantivemos o grupo correspondente entre o último\
e um espaço(.*)
conhecido como grupo de correspondências.fonte
Você deve considerar o uso de aspas fora da regex (no interior, elas são tomadas literalmente como aspas) e escapar
(
. Experimentar;A precisão da expressão pode não ser necessária, mas você não pode ter muito cuidado ao modificar arquivos.
fonte
reading filenames from STDIN
que já estou dentro da pasta pai, onde todos esses arquivos são*NEWER*
como está se nenhuma expansão for encontrada, você deve ter cometido um erro ou está usando um shell que substituiu um curinga incomparável por nada.