web-development-kb-pt.site

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

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 surgem repetidamente em relação à programação são grep, awk e sed.

A única coisa que usei o grep é canalizar coisas para encontrar arquivos nos arquivos de log, a saída de ps etc. Eu não usei awk ou sed em absoluto. Existem bons tutoriais para esses utilitários?

98
Macha

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

m AWK Primer ( link alternativo )

RegularExpressions.info

tutorial sed

tutorial grep

info sed, info grep e info awk ou info gawk

66

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

19
user591

Eu escrevi um livro sobre sedGuia Definitivo para sed - que inclui um tutorial. Abrange totalmente sed, bem como comandos relacionados como grep, tr, head e 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 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 de grep. Não faz sentido na minha experiência. grep é tão bom e simples.

11
Daniel Goldman

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.

3
ixtmixilix

Os autores do livro são Kernighan e Pike, o título é algo como "The Unix Programming Environment".

O livro que eu realmente aprendi foi chamado "Uma Introdução ao Berkeley Unix".

3
HandyGandy

Se você quiser aprender um desses 3 (grep, sed e awk), você pode simplesmente aprender 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.

2
user1606

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 uma linguagem de script como Perl ou hoje frequentemente python para manipulação avançada de texto O sed é ótimo para tarefas mais simples de manipulação de texto, eu o uso o tempo todo. Aprendi principalmente observando as one-liners sed como as de http://sed.sourceforge.net/sed1line.txt = Grep: Bem, basicamente você quer ter uma sólida compreensão das expressões regulares (também necessárias para o sed) .Eu aqui apenas usei os manuais do texinfo.

1
fschmitt