User Tools

Site Tools


spln2016:dirio3

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
spln2016:dirio3 [2016/03/04 20:37] – created ambsspln2016:dirio3 [2016/03/04 20:44] ambs
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  +   * Operadores sobre vários tipos de dados  
-  * Arrays Associativos +     * Arrays Associativos 
-  * Vetores +     * Vetores 
-  * Apontadores +     * Apontadores (referências!) 
-* Funções Anonimas +   * Funções Anónimas 
-* Perl Open() +   * Perl Open() 
-* Bash scripts +   * Bash scripts 
-* Perl 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='~/bin':$PATH, para adicionar a pasta /bin que se encontra na home folder. Esta alteração funciona apenas na sessão activa. +   * executar comando $export PATH='~/bin':$PATH, para adicionar a pasta /bin que se encontra na home folder. Esta alteração funciona apenas na sessão activa. 
-  * para tornar esta alteração permanente linuxmint basta adicionar "export PATH='~/bin':$PATH" ao ficheiro: +   * para tornar esta alteração permanente linuxmint basta adicionar "export PATH='~/bin':$PATH" ao ficheiro: $sudo vim /etc/bash.bashrc 
- $sudo nano /etc/bash.bashrc +
  
  
Line 40: Line 41:
  $chmod +x <filename>  $chmod +x <filename>
  
-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:
 +
  /(\w+)\s+(.+)/  /(\w+)\s+(.+)/
 +
 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+  * Arrays Associativos
  
  %a - array associativo   %a - array associativo 
Line 65: Line 72:
  $delete($a{v3})  $delete($a{v3})
  
-** Vetores +  * Vetores 
- @l - vetor+ 
 +        @l - vetor
  unshift(@l, elem ) - insere elemento no inicio do vetor  unshift(@l, elem ) - insere elemento no inicio do vetor
  elem = shift(@l) - retira elemento do inicio do vetor  elem = shift(@l) - retira elemento do inicio do vetor
Line 76: Line 84:
  join(',',1..10) - retorna string "1,2,3,4,5,6,7,8,9,10"  join(',',1..10) - retorna string "1,2,3,4,5,6,7,8,9,10"
  join(',',@l) - retorna string "$l[0],$l[1],....$l[n]"  join(',',@l) - retorna string "$l[0],$l[1],....$l[n]"
-  
  
-** Apontadores +  Referências 
- \@l - devolve apontador para o vetor + 
- \%a - devolve apontador para array associativo + \@l - devolve referência para o vetor 
- \&$f - apontador para função+ \%a - devolve referêcia para array associativo 
 + \&$f - referência para função
  @x = (1,[3,4]) ,  $x[1][1] = 3  @x = (1,[3,4]) ,  $x[1][1] = 3
  
 +  * Funções Anonimas
  
-* Funções Anonimas+ $x = sub{ ... } - função anonima
  
- $sub{ ... } - função anonima+  * Perl Open()
  
 + open(F,"<","/var/log/messages") - abre ficheiro /var/log/messages para leitura
  
- Perl Open()+  * Open de IPC (inter process communication: pipes)
  
- open(F,"<","/var/log/messages") - abre ficheiro /var/log/messages para leitura 
-  
  #!/usr/bin/perl  #!/usr/bin/perl
  
Line 111: Line 119:
  #!/usr/bin/perl  #!/usr/bin/perl
  
- open(F, "-|", "ls") or die("Cant open file\n"); +        open(F, "-|", "ls") or die("Cant open file\n"); 
- while (<F>) { +        while (<F>) { 
- print  "$. $_";+            print  "$. $_"
 +        } 
 +        close (F);
  
-+com open(F,"|-","ls"- Estamos a criar um Pipe, O processo 1 pode escrever informação em pipe para o processo 2, usando Descripror 'F'
- close (F);+
  
- open(F,"|-","ls") - Estamos a criar um Pipe, O processo 1 pode escrever informação em pipe para o processo 2, usando Descripror 'F' +  * Bash script
- +
-* 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 
  #!/usr/bin/perl  #!/usr/bin/perl
 +        
  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 152:
  
   *Detetar ficheiros duplicados numa diretoria fornecida como argumento.   *Detetar ficheiros duplicados numa diretoria fornecida como argumento.
 +
  #!/usr/bin/perl  #!/usr/bin/perl
 +        
  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 ( " ",  map{-d $_?"$_/*":$_}@ARGV);  my $arg =join ( " ",  map{-d $_?"$_/*":$_}@ARGV);
spln2016/dirio3.txt · Last modified: 2016/03/09 17:45 by ambs