OTIMIZANDO meu código em Shell Script
Recentemente fiz um post mostrando uma automação em Shell Script para converter vídeos para o DaVinci Resolve e que deu uma boa repercussão. Até fiz um vídeo sobre isso, vou deixar ambos aqui em baixo:
- SHELL SCRIPT – Fiz um script para CONVERTER vídeos para o DAVINCI RESOLVE
- DAVINCI RESOLVE: Script conversor de vídeos feito em Shell
Se você ler ou assistir, vai entender uma das gambiarras que eu fiz para não percorrer diretórios repetidos, utilizando uma variável temporária. Um tempo depois, hoje, 06 de Outubro eu fiz uma pequena otimização de uma ideia que tive do nada e só quis documentar aqui para lembrar que sempre dá para melhorar.
O problema…
Você pode notar que no primeiro looping eu estava percorrendo cada diretório que continha um arquivo de vídeo, e isso inclui diretórios duplicados.
Para ficar mais claro, veja direto no Terminal:
Por este motivo, estava utilizando o a variável ultimo_diretorio para fazer esse controle, realizando a conversão do vídeo somente quando ela era diferente da anterior. Puta gambiarra!
A solução! YEAH
As soluções sempre vem do nada… Estava no banho quando do nada, plin! Lembrei de um comando que retira as linhas duplicadas. Bastaria enviar o stdout do find para o uniq e ver o resultado…
Ainda havia outro problema, o uniq só funciona para linhas “seguidas”. Por exemplo, neste caso não funcionaria:
Isso porque o uniq vai transformar as três primeiras linhas, depois vai pegar as próximas 4 e também deixar como único. A última linha que também deveria desaparecer, vai continuar pois deveria estar junto com as primeiras. Veja:
Então, pensei em ordenar tudo antes de passar para o uniq, que é onde o sort entra no jogo (Bash é muito bom cara…).
Então ficou mais ou menos assim:
E o resultado final:
Isso me rendeu -6 linhas de código e matamos uma gambiarra.
Conclusão
A conclusão que eu quero passar nesse artigo é que sempre dá para melhorar, vai da nossa vontade de querer pesquisar afundo o que pode ser feito para isso. Também para falar que é normal seguir o fluxo de primeiro, fazer funcionar. Depois, vamos lentamente lapidando e melhorando! 🙂
Espero que tenha gostado destas dicas!
Me siga no Instagram onde eu faço conteúdos da minha rotina diária.
Participe dos nossos grupos no Telegram e Facebook! 🙂
Se tiver alguma dúvida ou sugestão de conteúdo, por favor, comente!