Sou usuário do Linux há um tempo e tenho um entendimento bastante decente da maioria dos utilitários de linha de comando comuns. No entanto, aqueles que vêm para cima e para cima novamente em relação à programação são grep
, awk
e sed
.
Sobre a única coisa que eu usei grep para é tubulação coisas para ela, para encontrar arquivos em arquivos de log, a saída ps
etc. Eu não usei awk
ou sed
em tudo. Existem bons tutoriais para esses utilitários?
grep
,sed
eawk
fazer (e em quase da mesma maneira) e muito mais no topo.man
página usual , que parece 90% de notas de rodapé.Respostas:
O AWK é particularmente adequado para dados tabulares e possui uma curva de aprendizado mais baixa do que algumas alternativas.
AWK: Um tutorial e introdução
Um AWK Primer ( link alternativo )
RegularExpressions.info
tutorial sed
tutorial grep
info sed
,info grep
Einfo awk
ouinfo gawk
fonte
O livro O'Reilly sed e awk é ótimo para er sed e awk.
fonte
Escrevi um livro sobre
sed
- Guia Definitivo para Sed - que inclui um tutorial. Abrange totalmentesed
, bem como comandos relacionadosgrep
, comotr
,head
etail
. Também cobre totalmente expressões regulares muito melhor do que eu já vi em outros lugares.Concordo com os outros que a compreensão sólida de expressões regulares é muito importante. Também concordo que, como
sed
é melhor usado para tarefas mais simples, scripts mais complexos rapidamente ficam obscuros.Eu discordo que
awk
é obsoleto, exatamente o oposto. É como muitas coisas unix (por exemplo,vi
), há uma curva de aprendizado, mas vale a pena.Não concordo com a sugestão de usar
awk
no lugar degrep
. Não faz sentido na minha experiência.grep
é tão bom e simples.fonte
grep
isso - você não pega o trator na estrada se puder ajudá-lo. E é um livro muito bom também - obrigado.O Livro de Receitas de Expressões Regulares publicado pela O'Rielly seria suficiente para levá-lo a qualquer lugar em qualquer idioma que os use.
fonte
Os autores do livro são Kernigan e Pike, o título é algo como "The Unix Programming Environment".
O livro que eu realmente aprendi foi chamado "Uma Introdução ao Berkely Unix".
fonte
Se você quiser aprender um desses 3 (grep, sed e awk), poderá aprender apenas awk / gawk. . O awk pode executar as funções grep e sed, ou seja, usar regex para pesquisar / substituir texto, e muito mais, porque também é uma linguagem de programação. Se você aprender o interior de gawk / awk, não precisará usar grep / sed / wc / cut etc. Apenas uma ferramenta faz isso.
fonte
g++ -x c++ - -o /tmp/prog && /tmp/prog
e digitar seus comandos. Uma ferramenta para governar todos eles! :-)Na minha opinião, o awk é mais ou menos obsoleto (no entanto, outros argumentam fortemente sobre essa opinião), a maioria das pessoas que conheço hoje em dia usa alguma linguagem de script como perl ou hoje python para manipulação de texto avançada. sed é ótimo para tarefas mais simples de manipulação de texto, eu o uso o tempo todo. Eu aprendi isso principalmente observando sed one-liners como as do http://sed.sourceforge.net/sed1line.txt . Em relação ao grep: Bem, você basicamente deseja obter um sólido entendimento de expressões regulares (também necessário para o sed). Eu aqui apenas usei os manuais do texinfo.
fonte
awk '{print $3}'
.dpkg -l
saída. Eu não faria nada remotamente complicado, mas seria uma ferramenta curta sem o awk. Não posso dizer o mesmo para linguagens de programação mais gerais, por mais que eu goste de algumas delas.