Precisa alterar a data sozinha no nome do arquivo

0

Eu quero listar arquivos com base na data e alterar a data sozinha nos arquivos em um diretório

arquivos agora:

abc051217.log

xyz051217.log

ccc051217.log

ddd051217.log

No acima, eu quero selecionar apenas arquivos precisam renomear a data apenas para os arquivos como abaixo

arquivo depois:

abc021217.log

xyz021217.log

ccc021217.log

ddd021217.log

alguma solução?

    
por Suresh kumar.P 08.12.2017 / 08:41

2 respostas

0

Você pode usar mmv . mmv usa padrões de shell padrão com '?' combinando um único caractere e '*' correspondendo a 0 ou mais caracteres, que são referenciados no padrão de destino com '#' + number (iniciando em 1).

Então, no seu caso de uso

mmv -n '*??????.log' '#102#4#5#6#7.log'

A opção -n é executada a seco, portanto, mmv não remove seus arquivos, mas apenas imprime o que faria. Depois de verificar se realmente faz o que você quer, execute o comando novamente sem -n .

    
por 08.12.2017 / 09:07
0

Coloque todos os arquivos que você deseja renomear em test.txt test.txt

abc051217.log
xyz051217.log
ccc051217.log
ddd051217.log

Use o código abaixo para renomear como por requisito.

Código.

i=021217;sed '/^$/d' test.txt|awk -v i="$i"  '{print "mv" " " $1 " " substr($1,1,3)i".log"}'  | sh

Saída

abc021217.log
xyz021217.log
ccc021217.log
ddd021217.log
    
por 08.12.2017 / 10:06

Tags