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:



Pingback: grep , Extrair emails de um arquivo | Beto
Pingback: O jeito Shell Script de resolver problemas — Parte 2 | AURELIO.NET
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
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.
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.
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
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 ;)
Grande Verde!! Parabens pelo vídeo, ficou muito bacana, ainda mais com os balõezinhos com as dicas!!!
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.
Tentei colocar o link, mas não rolou :(
Pelo que li, só pode botar links pra conteúdo do próprio YouTube: http://www.google.com/support/forum/p/youtube/thread?tid=7e88755f7d3fc491&hl=en
Abençoado seja o shell :D
Boa Aurélio! Vc sempre dá ótimas dicas !
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
Valeu! Quanto ao screencast, minha experiência com o blog me diz que eu definitivamente não me dou bem com a palavra periódico :)
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!
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 :)
Olá, Aurélio,
Você não removeu todas as duplicatas, porque ainda aparecem TERESINA PI e teresina PI. Faltou o -i no uniq.
Pois é, faltou mesmo, não me lembrei dessa opção na hora de gravar :/
Mas tudo bem, o vídeo é mais pra mostrar *como* fazer, o resultado é secundário.
Esse truque com o comando expand foi legal, vou guardar na manga.
Só fui conhecer esse comando recentemente, teria quebrado vários galhos anos atrás…
Pq o primeiro sed foi precedido por ; e não pelo pipe “|” ?
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!!
Excelente vídeo!!
Super, Hiper, Ultra, Mega, Power vídeo-aula!
Eu trabalho a cinco anos com sistemas embarcados linux e comprei todos os seus livros e indico para todos, parabéns pelo excelente trabalho.
Gostei da aula! Não sei nada sobre isso , mas entendi!