Existe um tutorial básico para grep, awk e sed? [fechadas]

95

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, awke 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 psetc. Eu não usei awkou sedem tudo. Existem bons tutoriais para esses utilitários?

Macha
fonte
2
Pode apostar! :)
gvkv
Eu sempre adiei o aprendizado de expressões regulares porque digo a mim mesmo que um dia aprenderei lendo os artigos originais de Kleene sobre a lógica que inventou o conceito antes de ser amplamente utilizado em computadores.
ixtmixilix
Concordo com gvkv: se você precisa aprender estes, assim como você pode aprender Perl, ele faz o que grep, sede awkfazer (e em quase da mesma maneira) e muito mais no topo.
reinierpost
Eu sempre gosto de thegeekstuff.com. Eles seguem direto para os exemplos, em oposição à manpágina usual , que parece 90% de notas de rodapé.
Isomorphismes

Respostas:

19

O livro O'Reilly sed e awk é ótimo para er sed e awk.


fonte
11

Escrevi um livro sobre sed- Guia Definitivo para Sed - que inclui um tutorial. Abrange totalmente sed, bem como comandos relacionados grep, como tr, heade tail. 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 awkno lugar de grep. Não faz sentido na minha experiência. grepé tão bom e simples.

Daniel Goldman
fonte
Eu concordo com grepisso - você não pega o trator na estrada se puder ajudá-lo. E é um livro muito bom também - obrigado.
precisa saber é o seguinte
3

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.

ixtmixilix
fonte
3

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".

HandyGandy
fonte
2

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.

user1606
fonte
ah, aliás, nem precisamos do awk, você pode simplesmente usar g++ -x c++ - -o /tmp/prog && /tmp/proge digitar seus comandos. Uma ferramenta para governar todos eles! :-)
Lie Ryan
1
quem precisa de um compilador quando você pode simplesmente escrever o binário diretamente em um arquivo? gato vai fazer, ou ed se você estiver com preguiça.
cas
1

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.

fschmitt
fonte
10
O awk ainda é muito útil para manipular dados canalizados de outros comandos. Para o uso simples da linha de comando, eu não consideraria obsoleto ainda.
MaQleod 25/09/10
Também deve estar disponível em muitos sistemas por causa do POSIX.
echox 27/09/10
1
A maioria dos 'AWK avançados' provavelmente é melhor executada com perl, python ou o que quer que seja, mas as coisas simples são boas de fazer apenas com o awk.
user455
1
O Awk ainda é útil para entender várias respostas que você pode encontrar online ao tentar resolver um problema. Você encontrará frequentemente exemplos on-line que usam instruções do awk como awk '{print $3}'.
Steven D
1
No trabalho e em casa, uso o awk com mais frequência do que o sed. Nada pode superar o awk em dados tabulares fixos, como a dpkg -lsaí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.
JM Becker