Se este é um caso único, acho que o processo a seguir é o melhor ajuste entre conveniência e robustez:
-
Use ls com um padrão para selecionar os arquivos desejados e redirecionar a saída para um arquivo (o padrão é apenas um exemplo, mas não é crítico por causa da próxima etapa):
ls member_net.*.control > file.list
-
Edite
file.list
no seu editor favorito: livre-se de quaisquer arquivos que você não queira alterar (é por isso que o padrão acima não é crítico); Certifique-se de que inclui todos os arquivos que você deseja alterar, adicionando todos os que faltam manualmente, se necessário; altere cada linha dexxx
paramv xxx XXX
, onde XXX é igual a xxx, mas com a data modificada. Essa etapa depende do seu editor, mas também pode ser feita usandosed
no arquivo original epaste
para colar os arquivos juntos:sed 's/2017-04-20/2017-04-21/g' file.list > newfile.list
paste file.list newfile.list > bothfiles.list
sed 's/^/mv /' bothfiles.list > commands.list
-
Agora você deve ter um arquivo
commands.list
que contenha linhas de comando no formuláriomv OLDNAME NEWNAME
-
Verifique cuidadosamente para garantir que cada linha de comando esteja correta e completa.
-
Então você pode executar os comandos colocando o arquivo no seu shell:
cat commands.list | bash
O que eu acho atrativo é que eu posso verificar o arquivo e ter certeza de que está exatamente certo e então sem tocá-lo em tudo executar todos os comandos nele e ter certeza que ele fará o coisa certa.
Isso não é tão geral quanto escrever um script de shell, mas geralmente é uma técnica útil para lembrar.