Ótima dica! Para quem quiser formar a saída da calculadora bc pode usar a seguinte notação: echo "scale=1; 26702.751000 / 60 /60" | bc -l a saída é 7.4. ou também: bc -l
Em vez de usar o ls em um sub-shell, melhor usar um globbing direto *.mp4 (for file in *.mp4) com a opção nullglob ligada (shopt -s nullglob) pra evitar interrupção do programa caso o glob não retorne arquivos.
Bela dica. Aprendi desta forma com os professores Blau Araújo e Slack Jeff. Só não sabia do shopt para o caso de não existir arquivos. (shopt -s nullglob)
dei um google aqui e consegui limitar duas casas após o ponto, com a variável especial "scale" echo "Total de: $( echo "scale=2; $total / 60 / 60" | bc -l ) horas"
Muito bacana o vídeo! como voce fez para no terminal ele mostrar um histórico de comandos enquanto está digitando? um exemplo disso acontece aos 03 minutos de vídeo... novamente, excelente vídeo!!!
ls *.mp4 | xargs -l ffprobe -show_entries format=duration -v quiet -of csv="p=0" | head -c -1 | tr ' ' '+' | xargs -I {} echo "({})/3600" | bc -l | xargs -I {} echo "Total: {} horas" Tem como fazer desse jeito em só uma linha, apesar de não ser muito legível kkkkk
Ótima dica!
Para quem quiser formar a saída da calculadora bc pode usar a seguinte notação:
echo "scale=1; 26702.751000 / 60 /60" | bc -l a saída é 7.4.
ou também:
bc -l
Em vez de usar o ls em um sub-shell, melhor usar um globbing direto *.mp4 (for file in *.mp4) com a opção nullglob ligada (shopt -s nullglob) pra evitar interrupção do programa caso o glob não retorne arquivos.
Bela dica. Aprendi desta forma com os professores Blau Araújo e Slack Jeff. Só não sabia do shopt para o caso de não existir arquivos. (shopt -s nullglob)
muito boa gustavo!! eu queria fazer com o find em uma linha:
$ find . -iname "*.mp4" -exec {} ;\
mas tive uns problemas e mandei um extreme go horse
Dessa forma??
```
hopt -s nullglob
for video in *.mp4; do
duracao=$(ffprobe -i $video -show_entries format=duration -v quiet -of csv="p=0")
total=$( echo $total + $duracao | bc )
done
shopt -u nullglob
```
Decimal = 100... minutos = 60. Para se calcular os minutos tem que multiplicar resto (décimos) por 60. Ex. 1,5 horas não é 01:50 e sim 01:30.
Cai de paraquedas, mas gostei da forma que explica, pode falar qual a vantagem e desvantagem de programar em shell
Pantera monstro, parabéns meu camarada. Sucesso pra ti!
Assisti o primeiro minuto já achei demais a ideia !
valeu mestre
Genial. Só gostaria de dar uma sugestão: exibir o código com zoom permitindo assistir no celular.
eu aumentei a fonte do terminal e do vscode :/
Ótimo vídeo, como sempre!
valeu mestre
Boa !
Agora tu veio meu rei. Não dê o peixe, ensine a pescar
Perfeito!!!
valeu mestre
Obrigado, me ajudou bastante o vídeo
Nao funcionaria usar DURACAO_TOTAL += probe -i... | bc, ou DURACAO_TOTAL = DURACAO_TOTAL + probe -i... | bc?
Caraca... Gênio 🧞
o que faltaria para limitar a quantidade de casas depois do ponto?
dei um google aqui e consegui limitar duas casas após o ponto, com a variável especial "scale"
echo "Total de: $( echo "scale=2; $total / 60 / 60" | bc -l ) horas"
valeu rapazeada, salvando meu tempo hahaha
Bom dia. Onde encontro seu curso de Shell script?
Muito bacana o vídeo!
como voce fez para no terminal ele mostrar um histórico de comandos enquanto está digitando?
um exemplo disso acontece aos 03 minutos de vídeo...
novamente, excelente vídeo!!!
Muito obrigado!!
@@danielcaland exatamente isso que o danilo falou! abs
Boa alemão
Valeu diogao
Eu achava Shell scripts complicado, mas usando muito o terminal e estudando vejo que não e bem assim. é até simples de entender..
exatamente ;)
Faço scripts aleatorios o tempo inteiro pra usar uma vez e nunca mais, simplesmente pq Acho mais divertido que Fazer o processo manualmente
ls *.mp4 | xargs -l ffprobe -show_entries format=duration -v quiet -of csv="p=0" | head -c -1 | tr '
' '+' | xargs -I {} echo "({})/3600" | bc -l | xargs -I {} echo "Total: {} horas"
Tem como fazer desse jeito em só uma linha, apesar de não ser muito legível kkkkk
Primeiro
Me sinto ate famoso
Tudo 3 kkkkk
Em? kkkk