Processamento de Linguagens (LEI - 3ºano)
Este ficha prática contem exercícios para serem resolvidos nas aulas teórico-práticas com vista a sedimentar os conhecimentos relativos a:
Recursos: |
|
|
Recursos disponíveis para a realização da ficha:
|
|
Exercícios: |
|
Invoque o comando egrep:
egrep PADRAO pltesteER.txtprimeiro, para ver o resultado de usar os padrões descritos pelas ER seguintes:
"pedro"
"[Pp]edro"
"[Pp]edro|[Dd][Aa]niela"
"[Pp]edro|[Dd][Aa][a-zA-Z]+"
"[Pp]edro|[Dd][Aa][a-zA-Z]*"
"[Dd][Aa]?[a-zA-Z]*"
e depois, para procurar em "pltesteER.txt":
Para introduzir a ferramenta AWK (sistema baseado num conjunto de regras 'Condição-Ação'), uma linguagem de programação para deteção de padrões e processamento de texto, mais o respetivo interpretador - criado em 1977 pelos cientistas Alfred Aho, Peter J. Weinberger e Brian Kernighan no Bell Labs - execute os comandos abaixo e analise com cuidado o seu resultado:
gawk '{ print $1 }' utilizadores.txt
gawk '{ print $1 }' pltesteER.txt
gawk '{ print $2 }' pltesteER.txt
gawk -F: '{ print $1 }' utilizadores.txt
gawk -F: '{ print $3 }' utilizadores.txt
gawk -F: '$1=="prh" { print $1 "->" $6 }' utilizadores.txt
gawk -F: '$1=="prh"||$1=="jcr" { print }' utilizadores.txt
e depois disso execute repetidamente o comando:gawk -f FILE.gawk utilizadores.txtem que FILE vai sendo 'expusers1' e 'expusers2', observando com cuidado o resultado produzido em cada caso, sendo:
expusers1.gawk
BEGIN { FS=":"; conta=0 }
NR==1 { print "A processar o ficheiro: " FILENAME }
NR>=1 && NR<=10 { print $1 }
{ conta+=NF }
END { print conta " - " NR }
expusers2.gawk
BEGIN { FS=":"; conta=0 }
/rita/ { conta++; print $1 " -> " $6 }
/prh|jcr/ { conta++; print $1 " -> " $6 }
/uucp/,/rpm/ { conta++; print }
/x.*sbin/ && $3>40 { conta++; print "Em sbin: " $0 }
$1 ~ "nuno" { conta++; print $1 " = " $NF }
END { print conta " - " NR " = " conta/NR }</codigo>
Com base nos exemplos anteriores, escreva um ficheiro 'exppltesteER.gawk' para processar o ficheiro de texto 'pltesteER.txt' conforme os requisitos solicitados nas alíneas seguintes:
Faça um exercício semelhante ao anterior, construindo agora um ficheiro 'expinscr.gawk' para processar o texto 'inscritos.txt' conforme solicitado nas alíneas seguintes:
Neste exercício vais calcular algumas frequências de alguns elementos, a ideia é utilisares arrays associativos para o efeito.
Especifica scripts em awk para responder às seguintes questões: