O jeito Shell Script de resolver problemas – Episódio 2

★ Lista de episódios da série Tela Preta: 1 2 3 4 5 6 7 8 9

Você tem um arquivo.
Você precisa extrair dados deste arquivo.
Linha de comando na cabeça!

Python, Ruby, PHP, JavaScript? Não.
C, C++? Fala sério!
Shell.

Um grep aqui, um sed ali.
Uma pitada de expressões regulares.
Problema resolvido.

Sorriso no rosto.
Dados no bolso.
Entoa o refrão:

Não precisa ser perfeito.
Não precisa ser polido.
Só precisa funcionar.

Resumo dos comandos:

  • grep — extrai linhas
  • cut — extrai colunas
  • sed — edita linhas
  • tr — troca caracteres

Histórico:

tail -n 50 changelog.t2t
grep ^: changelog.t2t
grep ^: changelog.t2t | sed 's/^: //'
grep ^: changelog.t2t | cut -c 3-10
grep ^: changelog.t2t | cut -c 3-
grep ^: changelog.t2t | cut -c 3- | grep '[0-9]'
grep ^: changelog.t2t | cut -c 3- | grep '[0-9]' | grep v
grep ^: changelog.t2t | cut -c 3- | grep '[0-9]' | grep v | sed 's/^v/200/'
grep ^: changelog.t2t | cut -c 3- | grep '[0-9]' | grep v | sed 's/^v/200/' | tr . -
grep ^: changelog.t2t | cut -c 3- | grep '[0-9]' | grep v | sed 's/^v/200/' | tr . - | sed 's/./&x/'
grep ^: changelog.t2t | cut -c 3- | grep '[0-9]' | grep v | sed 's/^v/200/' | tr . - | sed 's/./&x/2'
grep ^: changelog.t2t | cut -c 3- | grep '[0-9]' | grep v | sed 's/^v/200/' | tr . - | sed 's/./&x/6'
grep ^: changelog.t2t | cut -c 3- | grep '[0-9]' | grep v | sed 's/^v/200/' | tr . - | sed 's/./&x/7'
grep ^: changelog.t2t | cut -c 3- | grep '[0-9]' | sed 's/^v/200/' | tr . - | sed 's/./&-/7'
grep ^: changelog.t2t | cut -c 3- | grep '[0-9]' | sed 's/^v/200/' | tr . - | sed 's/./&-/7' | sed 's/--/-/'
grep ^: changelog.t2t | cut -c 3- | grep '[0-9]' | sed 's/^v/200/' | tr . - | sed 's/./&-/7' | sed 's/--/-/' | grep ..........
grep ^: changelog.t2t | cut -c 3- | grep '[0-9]' | sed 's/^v/200/' | tr . - | sed 's/./&-/7' | sed 's/--/-/' | egrep '.{10}'
grep ^: changelog.t2t | cut -c 3- | grep '[0-9]' | sed 's/^v/200/' | tr . - | sed 's/./&-/7' | sed 's/--/-/' | grep .......... > /tmp/lista.txt
— EOF —

Gostou desse texto? Aqui tem mais.