Como renomear uma grande quantidade de arquivos e remover extensões

Como renomear uma grande quantidade de arquivos e remover extensões

Preciso renomear os arquivos abaixo. Eu só quero remover .job-209675os nomes de arquivos que começam, SOAmas manter os nomes de arquivos originais intactos, pois há outros arquivos neste diretório

por exemplo
Antes: ./SOA_990377897NW0001_1557340549734.xml.job-2074645
Depois:./SOA_990377897NW0001_1557340549734.xml

Responder1

Se uma variável, filename, contiver o nome de um dos seus arquivos, então ${filename%.job-*}seria o nome sem o bit após o último ponto.

Para percorrer os nomes dos arquivos, renomeando cada um deles,

for filename in SOA_*.job-*; do
    echo mv -i "$filename" "${filename%.job-*}"
done

O echoestá lá para proteção. Você deve executar o loop uma vez e inspecionar a saída e, em seguida, remover echose achar que está correto. A -iopção mvfaz com que ele peça confirmação antes de substituir um arquivo existente.

Isso pressupõe que todos os arquivos relevantes (e nada mais) correspondam ao SOA_*.job-*padrão.

informação relacionada