Script do Bash Preciso renomear arquivos no bash, então a primeira parte do nome do arquivo é movida na última parte do nome do arquivo

0

Então aqui está um dos nomes de arquivos como um exemplo.

2017-11-09-23.00.19-CookingDoughnuts.txt

Renomeie para

CookingDoughnuts-2017-11-09-23.00.19.txt

Eu preciso fazer isso em massa para milhares de arquivos, então é um script, a parte do script que eu estou preso é o bit real de renomeação. Mas um script completo pode ser fornecido se facilitar a publicação de uma solução.

Eu posso dizer que o formato datado é o mesmo para todos os arquivos, então o símbolo do quarto traço é sempre o divisor entre a primeira e a segunda parte do nome do arquivo. A data e a hora reais variam e a parte do texto do nome do arquivo também varia.

Não é necessário que a data completa e o registro de data e hora sejam reescritos no novo nome do arquivo, portanto, neste exemplo, o seguinte seria aceitável como resultado.

CookingDoughnuts-2017-11-09-00.00.00.txt

Horas, min e segs podem ser todos de 00, mas a data precisa estar intacta.

    
por Chris C 26.04.2018 / 02:26

1 resposta

1

Substituição de parâmetros

fname="2017-11-09-23.00.19-CookingDoughnuts.txt"
ext="${fname##*.}"
name="${fname%.*}"
pref="${name#*-*-*-*-}"
suff="${name%-$pref}"
newfname="$pref-$suff.$ext"
echo "$newfname"
    
por 26.04.2018 / 02:40