http://www.flickr.com/photos/atomicshed/2405111237/                   awkAlmir m3nd3s@m3nd3sm3nd3s@gmail.comhttp://www.alm...
O que é o AWK?
AWK é uma    linguagem de    programaçãopara processamento de dados     baseados em texto
O que signifca AWK?        Alfred V. Aho,     Peter J. Weinberger      Brian W. Kernighan
$ man awk
http://www.flickr.com/photos/nuagedenuit/155699074/Quando usar
Quando temos um conteúdo emformato texto particularmente   separado por delimitador
http://www.flickr.com/photos/anotherjesse/151464940/      Quando um comando ou uma sequência       de comandos do shell (c...
Quando utilizar linguagens como     Java, C, Pascal, etc., parece                      “apelação”    http://www.flickr.com...
Quando os dados   “tem cara deAWK”
awk [pattern] { action }
awk { print $0 } /etc/passwdcat /etc/passwd | awk { print $0 }
Os $x são os campos O $0 é toda linha   O NF é..... ?
Delimitador default é      o espaço  Mas você pode trocar!     Basta usar o -F
¬¬   Isto não me parece umalinguagem de programção?!
Controle de fuxoif, while, do while, for,for in, continue, break
echo "10:34" |awk -F: { if($2<30) printf("%d:00",$1)        elseprintf("%d:30",$1)}
Tem suporte a Regex?     expr ~ /er/    expr !~ /er/
date |     awk $1 ~ /^Ter/{ print "Siege Day - " $0 }
http://www.flickr.com/photos/mrbill/2482009942/                    As expressões são                     similares ao da  ...
Assignment         = += -= *= /= %= ^=conditional        ? :logical or         ||logical and        &&array membership   i...
Variáveis pré-defnidas     FILENAME         NF         NR        OFS        ORS
Funções internas de      string      http://www.flickr.com/photos/61417318@N00/4908148942/
Você também pode defnir funções!
function csplit(s, A, n, i) {  n = length(s)  for( i = 1 ; i <= n ; i++ )A[i] = substr(s, i, 1)  return n}
http://www.flickr.com/photos/bittersweet_memories/4388392704/              Kramba.. isso na linha de                 coman...
awk -f prog.awk arquivo
Exemplos!!!!!!!!!!!!!     O__o
Emulando o cat:   { print }
Emulando o wc:{ chars += length($0) + 1; words +=                NF }   END { print NR, words, chars }
Referências           $ man awkhttp://pt.wikipedia.org/wiki/Awk           google.com
Almir m3nd3s          @m3nd3s      m3nd3s@gmail.comhttp://www.almirmendes.net/
Upcoming SlideShare
Loading in …5
×

Palestra sobre AWK [Giran Siege]

2,681 views

Published on

Palestra no Giran Siege sobre a linguagem de programação AWK para processamento de textos.

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,681
On SlideShare
0
From Embeds
0
Number of Embeds
792
Actions
Shares
0
Downloads
24
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Palestra sobre AWK [Giran Siege]

  1. 1. http://www.flickr.com/photos/atomicshed/2405111237/ awkAlmir m3nd3s@m3nd3sm3nd3s@gmail.comhttp://www.almirmendes.com/
  2. 2. O que é o AWK?
  3. 3. AWK é uma linguagem de programaçãopara processamento de dados baseados em texto
  4. 4. O que signifca AWK? Alfred V. Aho, Peter J. Weinberger Brian W. Kernighan
  5. 5. $ man awk
  6. 6. http://www.flickr.com/photos/nuagedenuit/155699074/Quando usar
  7. 7. Quando temos um conteúdo emformato texto particularmente separado por delimitador
  8. 8. http://www.flickr.com/photos/anotherjesse/151464940/ Quando um comando ou uma sequência de comandos do shell (cut, grep, etc.) não “parecem” sufcientes para obter o resultado desejado
  9. 9. Quando utilizar linguagens como Java, C, Pascal, etc., parece “apelação” http://www.flickr.com/photos/linssen/5226407901/
  10. 10. Quando os dados “tem cara deAWK”
  11. 11. awk [pattern] { action }
  12. 12. awk { print $0 } /etc/passwdcat /etc/passwd | awk { print $0 }
  13. 13. Os $x são os campos O $0 é toda linha O NF é..... ?
  14. 14. Delimitador default é o espaço Mas você pode trocar! Basta usar o -F
  15. 15. ¬¬ Isto não me parece umalinguagem de programção?!
  16. 16. Controle de fuxoif, while, do while, for,for in, continue, break
  17. 17. echo "10:34" |awk -F: { if($2<30) printf("%d:00",$1) elseprintf("%d:30",$1)}
  18. 18. Tem suporte a Regex? expr ~ /er/ expr !~ /er/
  19. 19. date | awk $1 ~ /^Ter/{ print "Siege Day - " $0 }
  20. 20. http://www.flickr.com/photos/mrbill/2482009942/ As expressões são similares ao da linguagem C
  21. 21. Assignment = += -= *= /= %= ^=conditional ? :logical or ||logical and &&array membership inmatching ~ !~relational < > <= >= == !=concatenation (no explicit operator)add ops + -mul ops * / %unary + -logical not !exponentiation ^inc and dec ++ -- (both post andpre)feld $
  22. 22. Variáveis pré-defnidas FILENAME NF NR OFS ORS
  23. 23. Funções internas de string http://www.flickr.com/photos/61417318@N00/4908148942/
  24. 24. Você também pode defnir funções!
  25. 25. function csplit(s, A, n, i) { n = length(s) for( i = 1 ; i <= n ; i++ )A[i] = substr(s, i, 1) return n}
  26. 26. http://www.flickr.com/photos/bittersweet_memories/4388392704/ Kramba.. isso na linha de comando é osso!
  27. 27. awk -f prog.awk arquivo
  28. 28. Exemplos!!!!!!!!!!!!! O__o
  29. 29. Emulando o cat: { print }
  30. 30. Emulando o wc:{ chars += length($0) + 1; words += NF } END { print NR, words, chars }
  31. 31. Referências $ man awkhttp://pt.wikipedia.org/wiki/Awk google.com
  32. 32. Almir m3nd3s @m3nd3s m3nd3s@gmail.comhttp://www.almirmendes.net/

×