|
From: | Tiago Peczenyj |
Subject: | Re: [shell-script] Re: Rename em diretórios |
Date: | Mon, 14 Aug 2017 17:09:26 +0000 |
Fala Tiago,esse tal desse rename é um comando bem safado e desconhecido. Safado no bom sentido, pq ele te permite usar regex na especificação de registros (podendo inclusive agregar sw perl na sua linha de comandos, usando -e ou -E).Mas aqui no caso, o que eu queria dizer sobre este cmd é que ele te permite fazer a simulação que vc propôs, desde que vc use a opção -n, qdo ele vai mostrar a linha que executaria, porém sem efetivamente executá-la.Um exemplo: a linha a seguir renomeia sequencialmente os arquivos por ordem de criação, mais antigos para mais novos (essa ordem é dada pelo ls -cr), mantendo a extensão. Ela tem um código perl embutido. Pode testar à vontade, pois por ter a opção -n, não executa a linha, só a mostra.$ ls -1cr | xargs rename -n 's/^[^\.]*(\..*)?$/our $i; sprintf("%03d$1", $i++)/e'Em Agosto darei um treinamento de 40 horas no RJ e em BSB sobreProgramação em Shell, com imersão em Expressões Regulares e dicasde YAD. Para mais detalhes acesse goo.gl/JkWmBxEm Dezembro um curso com este mesmo conteúdo/carga horária serálecionado em SP. Maiores detalhes neste site.Abcs,JulioDamos treinamento em sua empresa por um preço,no mínimo, 50% mais barato que qualquer curso,com certificado e nota fiscal.Nosso time de instrutores in company é formado somente porautores de Best Sellers laureados sobre os temas. P. exemplo:Shell básico e Programação em Shell Julio Neves
Bacula Heitor Medrado
Zabbix Adail Host
Produção Gráfica e Videografismo CadunicoEm 13 de agosto de 2017 13:12, Tiago Peczenyj address@hidden [shell-script] <address@hidden> escreveu:OlaQuando é aplicavel, eu adiciono uma serie de opções nos meus scripts.Uma opção é "debug" onde eu mando pra stderr muita informaçãoOutra é "dry-run" que basicamente vai fingir que uma ação foi feita, imprimindo no caso.Se a modificação que o script vai fazer é importante (como apagar ou renomear) vc pode aplicar as ideias mesmo q vc só precise executar isso uma vez na vida.Sua primeira versão vai imprimir e vc vai gastar um bom tempo analisando o log. Certamente vai encontrar situações excepcionais.Se não encontrar, uma opção de debug pode elucidar as coisas. Se um comando deu erro, certamente havera uma mensagem ou error code.Uma estratégia mais divertida é vc gerar outro shell script:O primeiro lista e gera um segundo com cada linha sendo um "mv antigo novo && echo ok || exit(1)", voce audita as linhas e executa.Se o conteúdo é importante, faça backup e veja se o que eu disse ai ajudaDeu certo! Descobri por que não estava renomeando todas pastas...
Tinha pasta com o mesmo nome, por isso o rename não estava executando em algumas pastas.
por exemplo, as pastas;
0001 - SHELL LTDA
0002 - SHELL LTDA
o rename só esta funcionando em apenas uma pasta. Pois não permitia duas pastas com o mesmo nome.
Mas deu pra descobrir pastas em duplicidade, agora é só arrumar.
Muito obrigado Galera.
Abs----
[Prev in Thread] Current Thread [Next in Thread]
- Rename em diretórios, gean . linux, 2017/08/11
- Re: [shell-script] Rename em diretórios, Tiago Peczenyj, 2017/08/11
- Re: [shell-script] Rename em diretórios, mr nobody, 2017/08/11
- Re: [shell-script] Rename em diretórios, Julio C. Neves, 2017/08/11
- Re: [shell-script] Rename em diretórios, mr nobody, 2017/08/11
- Re: [shell-script] Rename em diretórios, Julio C. Neves, 2017/08/11
- Re: Rename em diretórios, gean . linux, 2017/08/11
- Re: [shell-script] Re: Rename em diretórios, Julio C. Neves, 2017/08/13
- Re: [shell-script] Re: Rename em diretórios, Tiago Peczenyj, 2017/08/13
- Re: [shell-script] Re: Rename em diretórios, Julio C. Neves, 2017/08/14
- Re: [shell-script] Re: Rename em diretórios, Tiago Peczenyj <=
- Prev by Date: Re: [shell-script] Re: Rename em diretórios
- Next by Date: Re: Pegar dados de Formulario
- Previous by thread: Re: [shell-script] Re: Rename em diretórios
- Next by thread: SED - Como parar a consulta na N ocorrência
- Index(es):