★ Lista de episódios da série Tela Preta: 1 2 3 4 5 6 7 8 9
Mais um vídeo pra coleção :)
Dessa vez, nada de MoneyLog, TextMate, SVN, nem Google Code.
Agora é 100% a boa e velha tela preta: Shell Script na veia!
Problema: Você copiou algumas fotos para seu HD, mas a data do arquivo não bate com a data em que a foto foi tirada. Como arrumar isso?
Acompanhe:
Roteiro:
- 00:32 – exiftool — extraí a data em que a foto foi tirada
- 01:10 – grep — pesquei a linha com a data
- 01:30 – cut — recortei a linha, descartando trechos inúteis
- 02:15 – touch — mudei a data do arquivo para a data atual
- 03:28 – tr — apaguei caracteres indesejados com a opção -d
- 04:07 – sed — inseri um ponto após um caractere com expressões regulares
- 05:02 – sed — usei um número no final do s/// para trocar a 12ª ocorrência
- 05:29 – OK, data e hora estão no formato certo
- 05:44 – touch — usei o -t para especificar uma data (aaaammddHHMM.SS)
- 06:23 – for — fiz um laço (loop) que percorre todos os arquivos
- 08:02 – $(…) — inseri a subshell dentro do loop
- 09:03 – Bug! Esqueci de usar a variável $foto dentro do loop
- 09:40 – SEMPRE USE ASPAS NAS VARIÁVEIS!
- 10:10 – Tática ninja: Use o echo antes de executar um comando complicado!
- 10:50 – Feito, datas arrumadas
- 10:59 – chmod — tirei a permissão de execução (Windows) dos arquivos
DICA: Se você for ver o vídeo lá no YouTube é melhor, dá pra clicar nos números e pular direto para trechos específicos.
DICA2: Esta não é a única nem a melhor maneira de resolver este problema. O que quero demonstrar é como “pensar em shell” para resolver seus problemas. Ir construindo os comandos, um a um, até chegar no seu objetivo.
DICA3: Se quiser aprofundar seus conhecimentos em shell, recomendo o livro Shell Script Profissional, minha mãe viu a capa e disse que é muito bom! ;)