Amiguinhos, MUITO OBRIGADO a todos que mandaram sugestões, eu finalmente me decidi e gostaria de avisar que ontem comecei a trabalhar no meu próximo livro, que será sobre o comando sed.
Eu sei que estou atrasado, eu sei que isso já deveria estar pronto há anos, e é deprimente perceber quanto tempo passou sem eu ter feito um livro novo. O Shell Script Profissional é de abril de 2008! Mas é assim que funciona, durante estes anos não deu o tesão de escrever, e sem tesão não tem ação, é um loop infinito de escreve-apaga-escreve-apaga e nunca sai do lugar.
Felizmente a abstinência terminou e agora estou aqui, empolgadíssimo para ficar semanas (meses?) enclausurado, escrevendo um livrinho novo. A escolha do tema favoreceu muito a volta da inspiração, pois o sed é meu comando Unix preferido e posso ficar horas falando sem parar sobre ele :)
O sed é uma ferramenta que, após uma década, continuo usando quase que diariamente. Sempre tem algum texto pra limpar, pra reformatar, pra apagar algum pedaço e quando vejo lá estou eu na tela preta digitando algum comando sed. Esse é um filme mais repetido que Curtindo a Vida Adoidado na Sessão da Tarde :)
Uso o sed porque é útil e porque eu gosto. Ele é um bichinho estranho, que parece alienígena, mas esconde uma simplicidade bela, que só quem o conhece bem sabe admirar (tipo o Vim). E quando combinado com expressões regulares, mostra seu verdadeiro poder e faz mágicas.
Já cheguei ao cúmulo de fazer joguinho com sed, mas hoje sou mais moderado :)
O sed foi importante desde o ínicio de minha carreira: foi a primeira ferramenta do Unix que aprendi a dominar, quando ainda era estagiário. Ser o “guru do sed” dentro da empresa (Conectiva) significou muito para mim na época. Foi por causa do sed que tive que aprender expressões regulares, as Funções ZZ usam sed no lugar de outras ferramentas para garantir compatibilidade entre sistemas e o txt2tags só existe porque um dia eu quis escrever um sed-HOWTO em SGML. Mais detalhes sobre essas histórias no post 10 anos: Sed.
$ ls -1 zz* | wc -l # Nas 125 funções ZZ...
125
$ grep -w sed zz* | wc -l # ...o sed é usado 331 vezes!
311
Enfim, o sed estava lá desde o começo, participou das minhas criações mais importantes e continua firme e forte na minha rotina. Fazendo esse retrospecto, fica claro que é minha obrigação moral retribuir e fazer esta homenagem à ferramenta, fechando a trinca de livros: Shell + Sed + Expressões Regulares.
- Eu sei que sed é um assunto de nicho.
- Eu sei que o público é restrito.
- Eu sei que vai vender pouco.
Mas tudo bem, quero fazer este livro de qualquer jeito. Não quero morrer com este conhecimento guardado na cabeça. Quero poder “mostrar a luz” do sed para outros nerds.
Já fiz vários documentos sobre o sed, inclusive um livro inacabado, mas falta a obra definitiva: um texto completo, coeso, que parte do zero e ensina como funciona e como usar. E claro, o mais importante: o texto tem que ser leve e divertido, como uma conversa entre amigos. Detesto livros técnicos chatões.
O trabalho começou ontem, mas a escrita de verdade ainda leva um tempo. Esta fase inicial é de ambientação e planejamento. Estou definindo a forma do livro e sua didática: que assuntos vai ter, em que ordem, como será a narrativa, os exemplos, qual será o nível técnico, o público-alvo, essas coisas. Preciso primeiro “enxergar” o livro todo, do início ao fim, e quando essa massa imaginária de ideias toma forma e fica consistente, formando um ensinamento coeso de complexidade crescente, então estarei pronto para começar a escrever. Considero esta parte inicial a mais importante e difícil. Escrever o texto é a parte fácil.
Então, agora, mais do que em qualquer outra parte o processo, é a hora certa para você ajudar. Como a forma final ainda não foi definida, esta é a fase em que estou mais influenciável :) Por favor, use a caixa de comentários para dar sua opinião e suas ideias:
- O que você gostaria de aprender sobre o sed?
- Quais suas dificuldades?
- Quais tarefas você gostaria de usar o sed mas não sabe como?
- O que te impede de aproveitar melhor o sed?
- Como é seu uso atual do sed? Usa para quais tarefas?
- Fora o s///, usa outros comandos?
- Em qual sistema você usa(ria) o sed: Linux, Mac, Windows, Unix, outro?



Pingback: 10 anos de SedSokoban | AURELIO.NET
Pingback: Piazinho 4 – A missão | AURELIO.NET
É muita coincidência mas eu estava pesquisando sobre livros de sed há algumas horas atrás. Faz muito tempo desde que precisei mexer com essa ferramenta e acabou que hoje fiz um script e acabei usando egrep com awk mesmo, por falta de conhecimento em sed (e pressa também, o script era pra pegar links de um site).
O livro inacabado me ajudou bastante no passado e saindo esse novo com certeza vou comprar!
O uso de sed bem como de outras poderosas ferramentas disponíveis no mundo unix possuem um grave problema, que me remete aquele velho ditado, quem lê pouco ou não lê escreve pouco ou não escreve! Ou seja, estas ferramentas (vim / sed / awk (que eu gosto muito por sinal), gplot e por ai vai) se você não usa com certa frequencia acaba esquecendo e quando vai usar bimba não lembra mais como faz nem as coisas mais triviais!
Talvez uma idéia interessante para um capítulo seria uma relação de situações onde sed pode ser usada e quem sabe uns scripts meio mastigados :)
O que você gostaria de aprender sobre o sed?
Tudo, de uma forma completa e com uma linha de pensamento lógica…
Quais suas dificuldades?
Os comandos principalmente, tipow, todo material que eu encontrei na internet deriva de um pra outro, entendi que dá pra fazer um comando de duas formas diferentes, legal se tivesse tipo o canivete suíço do shell, um canivete suíço do sed, uahuahuahuah, tô zuando, mas seria legal ver os comandos de forma objetiva e as várias formas do mesmo comando uma do lado da outra…
Quais tarefas você gostaria de usar o sed mas não sabe como?
Com certeza fazer um jogo, ops já tem alguém que fez, que chato isso, mas também gostaria de usar no dia-a-dia para tarefas chatas do cotidiano, pra agilizar tudo…
O que te impede de aproveitar melhor o sed?
A falta de um bom material de estudo, se um dia aparecesse algum super-herói, pode ser até o duende verde, que pudesse escrever um bom seria muito show de bola…
Como é seu uso atual do sed? Usa para quais tarefas?
Troca de caracteres, MAIÚSCULAS-minúsculas.
Fora o s///, usa outros comandos?
Não, por falta de conhecimentos específicos.
Em qual sistema você usa(ria) o sed: Linux, Mac, Windows, Unix, outro?
Linux e, nos dias que eu estou querendo a morte, Windows.
Posso ser meio ignorante, mas eu gosto de abrir um prompt do python, jogar meu texto numa variável fazer uns splits com list comprehension e regex e isso parece substituir (à custa de mais caracteres) o sed… “Readability counts”
De qualquer forma, nunca passei do sed s/// ou d. Podia ser uma oportunidade de abrir horizontes :)
Mariel de Jesus: +7
Anselmo Battisti: + 8
Alem dos comentarios da Mariel e do Anselmo … eu acho que livro deveria responder as perguntas:
Fundamental: Como será que nós também podemos tirar proveito dele e de sua bela simplicidade quase que diariamente?
Outros:
- Porque o sed é útil e porque você (Aurelio Jargas, o guru do sed e das regexp) gosta tanto dele?
- Onde é que o sed esconde aquela bela simplicidade?
- Como e porque nós deveíamos trocar (ou no mínimo tentar trocar) as nossas ferramentas (perl one liners, python etc), pelo sed?
- Sed versus Perl/Python (implícito no texto do livro)
- Sed para power users
Acho (e acredito até) que você vai encontrar no livro “Minimal Perl for Unix and Linux People” (http://minimalperl.com/) uma __grande__ guia para os problemas que a forma do livro, sua didática e pedagogía apresentan.
e como sempre .. caso você precise traducir o livro para o espanhol … é só me pedir ;)
Un fuerte Abrazo
Gonzalo Nemmi
Em qual sistema você usa(ria) o sed: Linux, Mac, Windows, Unix, outro?
FreeBSD, DragonFlyBSD, Linux
Uma cópia é minha, reserve! :)
Um livro como seu de Shell que começa devagar e avança por diversos assuntos mais complexos é o ideal.
Um cópia para mim também =)
Faça o livro à sua maneira, vai ficar perfeito !
Abraços !
Aurélio, seja lá como vc estruturará o livro, espero que seja um approach mais íntimo do que o livro “Sed & Awk” da O’Reilly que eu considero muito bom e que realmente me ensinou sed. Eu já li o seu livro sed inacabado e acredito que vc poderia explorar mais as ideias, macetes e artimanhas que vc mostrou, coisas que só virão com anos de uso mesmo, os “cheats”. Esse seria um diferencial que me interessaria, por exemplo.
Esses dias vi um tetris implementado com o sed, seu nome tava no meio..
O que te impede de aproveitar melhor o sed?
Acredito que a possibilidade de fazer o mesmo usando outras ferramentas como o vim e mesmo uma linguagem de programação, talvez falte eu enxergar o poder do sed comparado a outras ferramentas para ter estímulo maior de aprender (certo é que eu me impressionei bastante com o tetris, hehe).
Aurélio, que tal colocar o piazinho pra aprender sed já que ele já domina regex?
Acho que se o novo livro seguir a linha do livro do piazinho, começando do zero e ir avançando devegar em conceitos cada vez mais complexos e poderosos, seria muito interessante.
Estou começando e me interesar por manipulação de textos, e com ceteza compraria o livro de sed pra fazer parceria com o Shel e o piazinho.
Queria saber como usar caracteres especiais no s///, como \n, \t, etc.
Estou apanhando…
=)
Ô, Aurélio, não viaja, vai. Simplicidade bela do Vim?!!! Vim não é simples, muito menos belo! Aquilo é um monstrengo, isso sim. Nunca dominei o sed, mas reconheço sua simplicidade e até enxergo um pouco da beleza. O Vim eu finalmente domino. Conheço, entendo, uso bastante… Mas odeio. Não é simples, não é belo, não é amigo de ninguém. A única verdadeira virtude do Vim é não ser o Emacs…
Mas então, voltando ao que interessa… Muito boa essa sua notícia. Eu ainda tenho muito interesse nesse livro de sed. Tomara que fique pronto bem depressa. Agora, vamos à enquete:
O que você gostaria de aprender sobre o sed?
Tudo, oras bolas. Quero poder fazer tudo que é possível sem precisar consultar pela 286a. vez o “Só Sed” do Thobias… Nem depois de 286 vezes eu decoro o que tem lá… E não saco nada daquela coisa de ficar tirando e pondo coisas no hold space.
Quais suas dificuldades?
Pensar em termos de linhas. Eu não gosto assim, gosto de pensar no texto inteiro como uma coisa só. Para fazer substituições, em vez de sed, uso sempre um script em Tcl que aceita três argumentos: o arquivo alvo, a string de busca e a string de troca. O script nem quer saber que diabos é uma linha, trata o texto todo como um bloco só. É muito melhor assim. Acho que só uso sed com o comando d ou !d. Quer dizer, podia até usar o grep pra isso, mas aquela época de convívio com você me deixou com um pouco de hábito de puxar logo o sed na caixa de ferramentas…
Quais tarefas você gostaria de usar o sed mas não sabe como?
Aqueles malabarismos doidos do hold space.
O que te impede de aproveitar melhor o sed?
Ser humano e ter um cérebro na cabeça em vez de um computador. Sério, se formos além da simples busca-e-troca, o sed parece muito mais um brinquedo tipo quebra-cabeças do que uma ferramenta de verdade. Sabe aqueles dois ferrinhos tortos e enroscados que você tem que separar? É bem isso que o sed me parece.
Como é seu uso atual do sed? Usa para quais tarefas?
Acho que só pra d e !d mesmo…
Fora o s///, usa outros comandos?
Já respondi.
Em qual sistema você usa(ria) o sed: Linux, Mac, Windows, Unix, outro?
Linux. Às vezes rola um BSD, só pra passar tempo…
Falowz.
Acho que um excelente conteúdo (e diferencial) para o livro de sed é mostrar quais são as diferenças entre as implementações de sed mais usadas.
Por exemplo, eu sei que o GNU sed tem o parâmetro “-i” (ou “–in-place”), que faz e salva as mudanças no mesmo arquivo, sem precisar redirecionar nada. É uma tremenda mão-na-roda, uso isso diversas vezes! Porém, sei que o sed do Mac OS X não tem essa opção.
Saber essas diferenças (e mostrar como simular o “-i” nos sistemas onde não existe “-i”) seria algo MUITO bom para o livro.
Seria interessante um livro que fosse destinado desde aquele usuario que nunca trabalhou com SED e nem sequer sabe como utilizar um simples comando e se estendendo aquele velho guru Unix que nunca dominou o comando por completo, mas esta cansado de saber como funciona. Acho que pra ficar mais “compativel” com tudo, seria bom mostrar como instala-lo e utiliza-lo em todos os principais sistemas, *nix e Windows, ja que muitos que gostariam de utilizar o SED nao tem ou nao querem ter uma maquina unix disponivel.
Até mais ;)
Concordo com o Angelito. Eu por exemplo nunca utilizei sed mas tenho interesse pelo assunto. Seria interesse uma introdução legal para aqueles que nunca mexeram e um conteúdo que também agrade àqueles que já conhecem.
Para agradar gregos e troianos, o livro vai ficar meio extenso =).
Sou professor de curso técnico, onde parte da disciplina.
Acho que seria muito bom incluir no livro exemplos práticos e simples.
Gosto muito dos seus 2 outros livros, e seria muito legal ter +1 seu na biblioteca.
Mas respondendo às perguntas, vamos lá:
- Gostaria de “desmistificar” os comandos do sed, aprender os tipos e funções dele, passo a passo
- Utilizaria no Mac e no Linux.
Em sala, sempre mostro aos meus alunos scripts que envolvem informações sobre a rede. Geralmente esses scripts são simples, e o resultado é bastante prático e visível.
[]
Oreio,
Que bom que você irá tocar mais esse projeto! Uso bastante os documentos que produziu ao longo dessa década (nossa, faz tanto tempo assim?) sobre vi, awk, bash, e com o sed não é diferente.
Depois desse estágio inicial, se precisar de um revisor/pitaqueiro, conte comigo!
Abraços!
–
Eder L. Marques
Não entendo nada sobre o que vc diz, eu sou leiga!
Ainda sim, eu gosto disso de compartilhar conhecimentos, e a melhor forma é divulga-lo.
Eu gosto como escreve, não é nada massante…
Vou postar vc em meu face sempre que possivel, vc diz coisas boas e interessantes.
As coisas que vc diz agregam valor!
Se tiver twitter te sigo lá também, vc tem mto a dizer ainda.
abs e sorte!
O que você gostaria de aprender sobre o sed?
Trabalho com EDI e edição de arquivo texto diariamente. Minhas ferramentas são Ultraedit, awk, vbscript e perl. Quero conhecer a gama de recursos que a ferramenta oferece para usá-la quando for mais apropriado.
Como é seu uso atual do sed? Usa para quais tarefas?
Uso (e aprendo) ferramentas sob demanda. Surge a necessidade, estudo desenvolvo e pronto. Já usei sed algumas vezes, mas para fazer alguns replaces apenas.
Em qual sistema você usa(ria) o sed: Linux, Mac, Windows, Unix, outro?
Uso no Windows (com bin utils), Cygwin, Linux
Seu estilo de escrever é bacana e estou certo que o livro será um sucesso. Boa sorte.
Se for no estilo do piazinho será perfeito!
Oréio
Uma idéia, que pode ser boa, ou pode ser bem idiota
Colocar uma parte sobre os comandos ‘replace’ da linguagem. Como tem no piazinho, mas lá é focado mais o ‘match’
Oi Aurelio, eu denovo.
Sempre recomendo seus livros para clientes e alunos lá no CEFETÃO, isso mesmo lá do caminhão de onde vc caiu….hahaha.
Um livro de SED, ajudaria muito se tivesse uma teoria de onde vem esse bicho danado. Quem o escreveu, quando e onde. Talvez o motivo pelo qual foi inventado.
Esse histórico e bom ter, pois quando se vão replicar o conhecimento isso facilita o interesse. Lembre que o assunto tem que ser interessante, senão fica chato.
Algumas necessidades, são fazer as coisinhas bem básicas e simples. Como substituir caracteres, é um bom início, já que isso que mais utilizo com o SED.
As dificuldades são entender alguns comandos, pelo esquecimento talvez, e não saber explicar de onde vem esse negócio.
O que impede de usar, é justamente não ter um livro sobre o assunto.
Também utilizo o awk (sei que vc não é muito fã, mas uso) | awk -F ” ” ‘{print $1}’
Utilizo o Mac e Linux.
Depois coloca um saudação lá nos agredecimentos.
Forte Abraço
Mauricio Leal
Pô, nem acredito, aleluia! hehehe…
Verde,
Show de bola, quando sair, pode ter certeza que irei garantir minha cópia!
Uma sugestão que posso lhe dar no momento, é que você destine um capítulo de seu livro dando dicas aonde usar o sed, e para isso você pode usar mais de 1 década de experiência com a ferramente, então, nos nesse capítulo, nos conte no que você usa o sed e como usa, essa seria uma troca de experiência interessante para o leitor #ficaadica hehehe :D
Abraço!
Ah, ficou faltando:
O que você gostaria de aprender sobre o sed?
Conhece-lo melhor, queria que você falasse como você usa o sed e normalmente para que, isso abriria o horizonte de muitas pessoas.
Quais suas dificuldades?
Saber quando usar o sed.
Quais tarefas você gostaria de usar o sed mas não sabe como?
Gostaria de aprender mais sobre seus registradores, seu funcionamento, seria interessante algo bastante didático e que esmiuçasse o assunto.
O que te impede de aproveitar melhor o sed?
Ler um bom texto onde o autor posso fornecer sua experiência de uso.
Como é seu uso atual do sed? Usa para quais tarefas?
Formatação de textos, substituição de palavras, troca de palavras
Fora o s///, usa outros comandos?
d, I
Em qual sistema você usa(ria) o sed: Linux, Mac, Windows, Unix, outro?
Preferencialmente Linux, depois o Windows
[]s
Nao gostei da escolha. Acho que seria melhor uma livro sobre o Vim. Tudo bem, sei que agora eh tarde, mas quiz registrar aqui e agora. Boa sorte no seu novo livro que nao vou comprar.
Aurélio, eu torci para que a escolha do livro fosse Python, mas fiquei feliz com o sed. Eu uso muito a ferramenta para tratar listagens de saídas de comandos no console do linux. Atualmente, meu uso de sed é restrito por falta de conhecimento e prática. Quase sempre, quando preciso, acabo recorrendo à pagina do Thobias Salazar, que é excelente e tem resolvido. Eu fico frustrado quando preciso usar variáveis de usuário dentro do sed e lembro que isso não é possível. Eu gostaria que o livro abordasse soluções sobre como contornar essa falta.
Vamos por partes ? rsrs
Sou novato em Linux e também em Shell Script. Já usei o comando sed umas 20 vezes rss. Falei que sou aprendiz. :)
O que você gostaria de aprender sobre o sed?
De preferência tudo :) Mesmo antes de lançar o livro, pode anotar mais um comprador.
Espero que ele venha em forma de soluções de problemas como o seu outro livro que também comprei (Shell Script Profissional)
Quais suas dificuldades?
Tenho várias. Não saber quase nada de Shell Script e ter que desenvolver, está sendo um grande desafio. Já percebi que a maioria dos meus problemas seria resolvida com o uso do sed. Existem vários comandos importantes, mas se você que é fera acha o sed um dos melhores para o tratamento de expressões, concatenações, substituições de dados, quem sou eu para contestar. Quero testar a velocidade de cada comando na busca dos melhores em velocidade, mas também em praticidade.
Espero que o novo livro traga bons comparativos sobre outros comandos em relação ao sed. Seria super bem vindo até porque está em falta nos fóruns estes comparativos.
Quais tarefas você gostaria de usar o sed mas não sabe como?
Precisei tratar datas em ordens totalmente diferentes e percebi que se soubesse bem de sed teria resolvido com ele.
Ajustar textos. Fazer laços para compor novos conteúdos com base em outros arquivos. Estou tentando fazer Scripts modulares igual eu aprendi fazer em PHP. Percebi que tratar esta modularização para inclusão automática de arquivos em Scripts usando sed seria um ótima. Me parece que ele faria o tratamento de nomes para pescar quais arquivos precisam ser incluídos de maneria rápida e eficiente.
O que te impede de aproveitar melhor o sed?
Conhecimento :) Lendo muito ultimamente sobre tudo. Aos poucos estou pegando o jeito de pensar em Shell Script. Ainda não consegui ler de forma correta a forma sed de pensar. Com certeza quando eu dominar isto, será uma mão na roda.
Como é seu uso atual do sed?
Até o momento foi mínimo. Resolvendo casos onde tenho que pegar nomes de arquivos e extrair só parte do nome para compor outras variáveis. Para filtrar o conteúdo de forma seletiva. Em operações que seja necessário a troca de valores na linha.
Vou tentar o sed para ler uma arquivo e alterar somente uma linha e devolver o resto sem alterações e só esta linha será alterada, rsrs. Não tenho a menor ideia de como vou fazer.
Seria um Script para pegar uma linha em um arquivo e rodar contra vários trocando somente esta linha tratada e não poderá alterar mais nada. Servirá para colocar o número de versão para todos os Scripts , ChangLogs, Leiame, etc… Penso que com sed será uma boa.
Usa para quais tarefas?
Já citei acho que todas acima. Gostaria que o livro tratasse sobre em que horas o sed é o comando ideal. Sei que você poderá dizer que a qualquer hora rrs. Devem existir situações em que usamos outros comandos por não saber que no sed seria a melhor opção.
Fora o s///, usa outros comandos?
Tô falando que sou novato. Sei que o s/ é pra troca. Os outros 2…
Em qual sistema você usa(ria) o sed: Linux, Mac, Windows, Unix, outro?
Linux
Espero que este livro não demore muito :)
De qualquer forma, estou sempre acompanhando seus materiais, dicas, vídeos, etc…
Parabéns antecipados pelo livro e conte comigo no que for necessário para testes. Tenho uma tarefa dolorida pela frente tentando recolher os padrões de desenvolvimento e seu livro é uma dos melhores.
Falta muito sobre convenções de programação Shell Script e estou tentando formar um padrão básico até para colocar ordem na minha casa e aprendizado.
Quem desejar saber como está sendo este processo colaborativo, consulte este tópico:
http://www.vivaolinux.com.br/topico/Shell-Script/Sugestoes-para-convencoes-na-programacao-de-SHELL-SCRIPT/
Valeu Aurelio
Twitter: @GA_Tux e @AprendiNoLinux
http://aprendinolinux.wordpress.com
Creio que este site pode ser fonte de consultas pra você montar a sua idéia:
http://www.grymoire.com/Unix/Sed.html
Estou querendo conhecer melhor o editor, só pelo fato de você elogiá-lo tanto… o material em seu site é muito interessante.
Eu creio que o Sed (me corrija se eu estiver errado) pode até ser usado para manipular algumas bases de dados… Se for possível, seria uma abordagem interessante num capítulo de seu livro.
Parabéns… vou recomendar o seu site para meus alunos de Linux.
Fala, Aurélio!
Que beleza, só agora fiquei sabendo que você tá trabalhando no livro de Sed.
Eu devorei o livro inacabado…
Minhas respostas do questionário são as mesmas do LES.
Acho que dá pra adicionar na lista de dúvidas ainda aquele esquema de branches, também… Já usei algumas vezes, mas nunca lembro depois como era.
Talvez fosse interessante ter um fluxograma com o algoritmo principal do SED.
Falou, abraço!
O livro sobre sed eu compraria sem pensar duas vezes :)
[]‘s
Creio que um capítulo só com exercícios propostos e outro com scripts exemplo para tarefas corriqueiras bem especificas. Por exemplo,
1. Manipulação de IP’s
2. Manipulação de arquivos de configuração
3. Automatização de tarefas
4. Logs
E por ai vai…
Creio que exemplos e exercícios propostos não podem faltar… No mais deveria ser a bíblia do sed!
Gostariamos de saber como está o andamento deste novo livro, sobre sed.
Nos dê notícias. Inté.
Por enquanto, nem comecei :(
Espero que falte pouco para o lançamento. Mal posso esperar. Já tenho a apostila de shell-scrit e o livro de espressões regulares, de sua autoria, e esse outro livro eu não posso perder também.
Sucesso amigo.