O jeito Shell Script de resolver problemas — Parte 1

→ Parte 2Parte 3

Shell é diferente, você tem que pensar diferente.

Se você tem um arquivo XML e precisa obter o conteúdo de uma tag, você usa o parser de XML de sua linguagem de programação preferida, certo? Pode ser. Mas há maneiras diferentes de se fazer isso.

E olha que nem precisa ser programador!

Basta saber uma meia dúzia de comandos do shell, abrir a tela preta e viajar na linha de comando. Sem pressa, na tentativa e erro, saboreando o durante para relaxar no depois.

Este vídeo não é sobre XML nem sobre programação.

É sobre shell.
É sobre combinar comandos.
É sobre brincar com texto.

Grepa daqui,
corta dali,
ordena de lá,
junta acolá.

Relaxe. Abra sua mente.

Não precisa ser perfeito.
Não precisa ser veloz.
Não precisa ser eficiente.
Só precisa funcionar.

Resumo dos comandos:

  • grep – extrai linhas
  • sed – edita linhas
  • sort – ordena linhas
  • uniq – remove duplicadas
  • expand – tamanho do TAB

Saiba mais sobre os tópicos do vídeo:

Related Posts Plugin for WordPress, Blogger...
Publicado em por Aurelio Jargas e arquivado em Nerd, Vídeo-aula (screencast) com as tags , , , .

27 respostas a O jeito Shell Script de resolver problemas — Parte 1

  1. Pingback: grep , Extrair emails de um arquivo | Beto

  2. Pingback: O jeito Shell Script de resolver problemas — Parte 2 | AURELIO.NET

  3. Marcelo Diniz disse:

    Muito bom o vídeo! Não sei nada mesmo de shell, já li o seu livro de ER, q por sinal é muito boa a didática, e já tinha interesse, agora mais, de aprender SS.

    Vou a luta e espero aprender mais ai com todo esse seu conhecimento!

    Abs

  4. Sandro disse:

    Parabéns pelo vídeo como sempre muito bem explicado e de fácil entendimento mesmo para quem não tem intimidade com shellscript. Tomara que ainda venha muitos outros vídeos com dicas que com certeza ajuda no dia a dia.

  5. Daniel Lobão disse:

    Vídeo excelente aí verde! Ainda não manjo tanto de shell apesar de brincar às vezes, mas já consegui automatizar algumas coisas braçais como (des)compressão de arquivos, renomear segundo padrões e etc. Já usei o grep + cut e o grep + sed, e tô no longo caminho do aprendizado aí.

    Faça mais vídeos de shell, com certeza. Aquele de alteração do timestamp das fotos por exemplo foi muito útil e de didática bem simples.

    Keep up the good work.

  6. Muito bom, Verde!
    SH é realmente uma mão na roda.. não só para scripts, mas, para agilizações em termos gerais, como pesquisas em códigos através de expressões, organização de textos e, é claro, automatização de tarefas e jobs freqüentes!
    Parabéns pelo vídeo, e já sei quase será meu próximo livro a ser adquirido…rs

    Grande abraço,

    -Rafa

  7. Henrique disse:

    Fala Aurélio,

    É interessante esse método quando temos ferramentas GNU a disposição. Trabalho muito com HP-UX, AIX e Solaris com versões não-GNU e antigas de utilitários como sed, awk, grep e afins, então muitas das fácilades apresentadas aqui acabam por não funcionar. Nesses casos opto sempre pelo perl que roda em todos e, salvo operações específicas de versão, funciona muito bem em todos.

    Abraços,

    • Boa observação sobre compatibilidade Henrique.

      O grep, sed e uniq fiz uso normal, que funcionará em qualquer Unix. A opção -f do sort provavelmente é coisa do GNU sort e o expand é do BSD.

      Então resumindo, de GNU mesmo é só o sort -f :)

      Quanto ao perl, bem, não gosto muito ;)

  8. Islenho disse:

    Grande Verde!! Parabens pelo vídeo, ficou muito bacana, ainda mais com os balõezinhos com as dicas!!!

  9. Ideia: nas anotações do YouTube, dá para colocar links. É mais fácil clicar no balãozinho para ir ao site do que ter que digitar a URL. :)
    Mas, considerando as URLs pequenas e fáceis do aurelio.net, é legal exibi-las também como texto dentro do balão.

  10. Beto disse:

    Abençoado seja o shell :D

    Boa Aurélio! Vc sempre dá ótimas dicas !

  11. Boa! Divulguei na lista do curso de computação da minha universidade.
    Com seu conhecimento, poderia fazer um um screencast periódico, tipo o Railscasts. Eu gostaria bastante =)
    Fica a ideia.

    Abraço

  12. otubo disse:

    Oreio,

    Parabéns grandão pelo tuto. Sempre muito bem explicado :) Agora cabe duas perguntas nilbas: 1) No sed, por que o ‘[' deu erro de caracter especial e o ']‘ não? 2) Daria pra juntar os dois seds em um só?

    Valeu! Abraço!

    • Jônatas disse:

      Ola otubo.

      o ] por um motivo não dar problema no exemplo é que serve pra fechar a lista aberta pelo [ ,como no exemplo não tem nem uma lista aberta, ele não pode fechar nada, então só pode ser um simples "]“. Eu tenho o costume de sempre escapar ele, independente da necessidade. Se isso é certo, desnecessário ou tanto-faz, melhor perguntar para o mestre mesmo.

      E sim, tem como fazer em um único sed. A um tempo a traz, provavelmente ele teria feito um tão porreta que alem de fazer todo o serviço ainda faria um café e arrumava a casa, mas de um tempo pra cá o Aurélio tem optado por comandos mais simples e legíveis. O motivo é a legibilidade futura. uma coisa normal em quem tem passado(mais de 10 anos brincando com sed) é pensar no futuro

    • Bem, o que sobrou pra eu dizer… nada! O Jônatas já disse tudo, assino embaixo :)

  13. Alan disse:

    Olá, Aurélio,

    Você não removeu todas as duplicatas, porque ainda aparecem TERESINA PI e teresina PI. Faltou o -i no uniq.

  14. Rudá Moura disse:

    Esse truque com o comando expand foi legal, vou guardar na manga.

  15. Michael Noardo disse:

    Pq o primeiro sed foi precedido por ; e não pelo pipe “|” ?

  16. Lourival Filho disse:

    Aurelio,
    Muito bom esse vídeo, sou iniciante no mundo unix/linux e gostaria de saber como deixar o bash com uma linha para os comandos e as outras para o resultado?

    Valeu e Parabéns!!

  17. Rafael Izidoro disse:

    Excelente vídeo!!

  18. Marcos disse:

    Super, Hiper, Ultra, Mega, Power vídeo-aula!

  19. julio disse:

    Eu trabalho a cinco anos com sistemas embarcados linux e comprei todos os seus livros e indico para todos, parabéns pelo excelente trabalho.

  20. Cleiton disse:

    Gostei da aula! Não sei nada sobre isso , mas entendi!

Deixe um Comentário

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>