spln2016:dirio3
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
spln2016:dirio3 [2016/03/04 20:37] – created ambs | spln2016:dirio3 [2016/03/09 17:45] (current) – ambs | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== SPLN ====== | ====== SPLN ====== | ||
- | ==== Diário de Bordo - Aula 3 - 2016-03-01 ==== | + | ==== Diário de Bordo - Aula 3 - 2016-02-29 ==== |
=== Sumário === | === Sumário === | ||
Line 8: | Line 8: | ||
* Script para criar nova pasta por aula | * Script para criar nova pasta por aula | ||
* Atribuir permissões ao script | * Atribuir permissões ao script | ||
- | * Expressões regulares | + | * Expressões regulares |
- | * Operadores sobre vários tipos de dados | + | |
- | * Arrays Associativos | + | |
- | * Vetores | + | |
- | * Apontadores | + | |
- | * Funções | + | |
- | * Perl Open() | + | |
- | * Bash scripts | + | |
- | * Perl scripts | + | |
+ | |||
+ | === Conteúdo === | ||
- | Enviroment $PATH | + | Enviroment $PATH |
- | - para adicionar mais um caminho podemos: | + | * para adicionar mais um caminho podemos: |
- | * executar comando $export PATH=' | + | |
- | * para tornar esta alteração permanente linuxmint basta adicionar " | + | |
- | $sudo nano / | + | |
Line 40: | Line 41: | ||
$chmod +x < | $chmod +x < | ||
- | Expressões Regulares | + | **Expressões Regulares |
Para fazer match do caracter espaço, utiliza-se o seguinte : | Para fazer match do caracter espaço, utiliza-se o seguinte : | ||
+ | |||
\s é equivalente a [ \t\n] | \s é equivalente a [ \t\n] | ||
\S é equivalente a [^ \t\n] | \S é equivalente a [^ \t\n] | ||
Utilização do Default input and pattern-searching space: | Utilização do Default input and pattern-searching space: | ||
+ | |||
while( $_ =~ /\S/){...} | while( $_ =~ /\S/){...} | ||
while( /\S/ ){...} | while( /\S/ ){...} | ||
+ | |||
Esta expressão regular apanha todas as linha nao vazias. | Esta expressão regular apanha todas as linha nao vazias. | ||
Para aceder a campos da expressão regular que fez match utilizamos a seguinte sintax: | Para aceder a campos da expressão regular que fez match utilizamos a seguinte sintax: | ||
+ | |||
/ | / | ||
+ | |||
onde as expressões que estão dentro de parênteses curvos são acessiveis através de das variáveis $1..$9. | onde as expressões que estão dentro de parênteses curvos são acessiveis através de das variáveis $1..$9. | ||
+ | **Operadores sobre vários tipos de dados** | ||
- | * Operadores sobre vários tipos de dados | + | Consultar Capiulo 14. do Quick Reference Guide fornecido. |
- | Consultar Capiulo 14. do Quick Reference Guide fornecido. | + | |
- | ** Arrays Associativos | + | |
%a - array associativo | %a - array associativo | ||
Line 65: | Line 72: | ||
$delete($a{v3}) | $delete($a{v3}) | ||
- | ** Vetores | + | |
- | @l - vetor | + | |
- | unshift(@l, | + | |
- | elem = shift(@l) - retira elemento do inicio do vetor | + | |
- | push(@l, elem) - insere elemento no final do vetor | + | |
- | elem = pop(@l) - retira elemento do final do vetor | + | |
- | $l[3] - accesso para o terceiro elemento da lista | + | |
- | $l+0 = comprimento da lista | + | |
- | @l = split(/ | + | |
- | join(',', | + | |
- | join(',', | + | |
- | + | ||
- | ** Apontadores | + | @l - vetor |
- | \@l - devolve apontador para o vetor | + | |
- | \%a - devolve apontador para array associativo | + | elem = shift(@l) |
- | \&$f - apontador | + | |
- | @x = (1,[3,4]) , $x[1][1] = 3 | + | elem = pop(@l) - retira elemento do final do vetor |
+ | | ||
+ | $l+0 = comprimento da lista | ||
+ | | ||
+ | join(',', | ||
+ | join(',', | ||
+ | * Referências | ||
- | * Funções Anonimas | + | \@l - devolve referência para o vetor |
+ | \%a - devolve referêcia para array associativo | ||
+ | \&$f - referência para função | ||
+ | @x = (1,[3,4]) , $x[1][1] = 3 | ||
- | $sub{ ... } - função anonima | + | * Funções Anonimas |
+ | $x = sub{ ... } - função anonima | ||
- | * Perl Open() | + | |
open(F,"<","/ | open(F,"<","/ | ||
- | + | ||
+ | * Open de IPC (inter process communication: | ||
# | # | ||
Line 99: | Line 107: | ||
while (<>) { | while (<>) { | ||
print | print | ||
- | |||
} | } | ||
close (F); | close (F); | ||
Line 111: | Line 118: | ||
# | # | ||
- | open(F, " | + | |
- | while (<F>) { | + | while (<F>) { |
- | print "$. $_"; | + | print "$. $_"; |
+ | } | ||
+ | close (F); | ||
- | } | + | com open(F," |
- | close (F); | + | |
- | + | ||
- | open(F," | + | |
- | * Bash script | + | |
for a in {1..20000}; do echo $RANDOM >$a.txt; done - cria 20000 ficheiros | for a in {1..20000}; do echo $RANDOM >$a.txt; done - cria 20000 ficheiros | ||
- | *Perl scripts | + | * Perl scripts |
- | * imprime linhas repetidas, ignora linhas vazias | + | |
- | # | + | |
+ | * imprime linhas repetidas, ignora linhas vazias | ||
+ | |||
+ | # | ||
+ | | ||
use warnings; | use warnings; | ||
use strict; | use strict; | ||
use utf8::all; | use utf8::all; | ||
+ | | ||
my %hash; #array associado | my %hash; #array associado | ||
while (<>) { | while (<>) { | ||
Line 143: | Line 151: | ||
*Detetar ficheiros duplicados numa diretoria fornecida como argumento. | *Detetar ficheiros duplicados numa diretoria fornecida como argumento. | ||
+ | |||
# | # | ||
+ | | ||
use warnings; | use warnings; | ||
use strict; | use strict; | ||
use utf8::all; | use utf8::all; | ||
+ | | ||
my %hash; #array associativo | my %hash; #array associativo | ||
my $arg =join ( " ", | my $arg =join ( " ", |
spln2016/dirio3.1457120241.txt.gz · Last modified: 2016/03/04 20:37 by ambs