Comentários
Resposta
Normalmente, grep
é usado para pesquisa operações, sed
é usado para pesquisar e substituir operações e awk
é particularmente adequado para dados tabulares e tem uma curva de aprendizado mais baixa do que algumas alternativas. Existem recursos sobrepostos entre essas ferramentas também, consulte: Quando usar grep, less, awk, sed
grep
- Documentação:
man grep
,info grep
, Manual online GNU grep - Uma introdução a grep e egrep
- tutorial grep
- ripgrep – implementação alternativa, recursiva por padrão, respeita
.gitignore
, Rust / PCRE2 regex, SIMD, etc - Ebook em GNU grep e ripgrep
sed
- Documentação:
man sed
,info sed
, Manual on-line do GNU sed - Sed – Uma introdução e tutorial
- Sed por Exemplo Parte 1 , Parte 2 , Parte 3
- tutorial sed
- Ebook em GNU sed one-liners
awk
- Documentação:
man awk
,info awk
,info gawk
, Manual online do GNU awk - AWK: um tutorial e introdução
- Awk por Exemplo Parte 1 , Parte 2 , Parte 3
- Um manual do AWK ( link alternativo )
- Ebook em GNU awk one-liners
Leitura adicional
Resposta
O O” Reilly sed e awk livro é ótimo para er sed an d awk.
Resposta
Escrevi um livro sobre sed
– Guia definitivo para sed – que inclui um tutorial. Abrange totalmente sed
, bem como comandos relacionados como grep
, tr
, head
e tail
. Também cobre totalmente as expressões regulares muito melhor do que já vi em outro lugar.
Concordo com os outros que entender bem as expressões regulares é muito importante. Também concordo que sed
é mais usado para tarefas mais simples, scripts mais complexos rapidamente ficam obscuros.
Não concordo que awk
seja obsoleto, pelo contrário. É como muitos Unix coisas (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 grande e simples.
Resposta
O livro de receitas de expressões regulares publicado por O “Rielly seria suficiente para levá-lo a qualquer lugar em qualquer idioma que os utilize.
Resposta
Os autores do livro são Kernigan e Pike, o título é algo como “The Unix P rogramming Environment “.
O livro com o qual eu realmente aprendi se chama” Uma introdução ao Berkely Unix “.
Resposta
Se você quiser aprender um desses 3 (grep, sed e awk), basta aprender awk / gawk. . 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 os detalhes de gawk / awk, não precisará usar grep / sed / wc / cut, etc. Apenas uma ferramenta faz isso.
Resposta
Na minha opinião, awk é mais ou menos obsoleto (no entanto, outros irão argumentar fortemente sobre esta opinião), a maioria das pessoas que conheço hoje em dia, em vez disso, usa alguma linguagem de script como perl ou hoje geralmente python para texto avançado manipulation. sed é ótimo para tarefas mais simples de manipulação de texto, eu o uso o tempo todo. Aprendi principalmente olhando para frases simples do sed como as http://sed.sourceforge.net/sed1line.txt . Com relação ao grep: Bem, você basicamente deseja obter um entendimento sólido das expressões regulares (também necessárias para o sed). Aqui, usei apenas os manuais do texinfo.
Comentários / h3>
- awk ainda é muito útil para manipular dados canalizados de outros comandos. Para uso simples de linha de comando, eu não ' consideraria isso obsoleto ainda.
- Também deve estar disponível em muitos sistemas ms por causa do POSIX.
- A maioria do ' AWK avançado ' é provavelmente melhor feito com perl ou python ou qualquer outro, mas as coisas simples são boas para fazer apenas com o awk.
- O Awk ainda é útil para saber entender várias respostas que você pode encontrar online ao tentar resolver um problema. Você encontrará frequentemente exemplos online que usam instruções awk como
awk '{print $3}'
.
- No trabalho e em casa, eu uso awk com mais freqüência do que sed. Nada supera o awk em dados tabulares fixos, como a saída
dpkg -l
. Eu não ' não faria nada remotamente complicado nele, mas ' precisaria de uma ferramenta sem awk. Não posso ' dizer o mesmo para linguagens de programação mais gerais, por mais que goste de algumas delas.
awk '{print $3}'
. dpkg -l
. Eu não ' não faria nada remotamente complicado nele, mas ' precisaria de uma ferramenta sem awk. Não posso ' dizer o mesmo para linguagens de programação mais gerais, por mais que goste de algumas delas.
man
usual que parece 90% de notas de rodapé.