Linux, Open-source, Programação e Produtividade

Awk & Sed

fabs em 22/10/2009

Agora que além de aprendiz de cientista da computação, eu virei Engenheiro de Informática e Redes em treinamento, tenho aulas de Administração de Sistemas aqui em ESISAR.

Um dos exercícios de Trabalho Prático (Exercício Programa + Professor para quem é do IME) era escrever um script que listasse todos os usuários em /etc/passwd.

Rapidamente me lembrei de “Cadu punhos de aço” e dei minha resposta usando sed, entretanto, o que você vê abaixo é uma versão melhorada e corrigida por Tiago Peczenyj (obrigado thiago):

root@linux# sed -nr ‘/^(\[^:]+):x:([^0\]\[0-9\]{2,}).*$/{s//\2 – \1/;p}’ /etc/passwd

Feliz com a minha resposta, o professor mostrou o mesmo comando com awk:

root@linux# awk -F’:’ ‘{ if ($3 > 100) printf “%s – %s \n”,$3,$1}’ /etc/passwd

(nos comentários existem versões com melhorias :-)

Achei fantástico como awk pode ser mais verboso. Alguém ai conhece um ou outro e pode mostrar umas dicas?

Para quem quer aprender um dos dois, ficam aqui os links:

Sed – Un Introduction Tutorial by Bruce Brannet

Awk – A tutorial

Creative Commons License
Awk & Sed de fabs está licenciado sob Creative Commons License.