>_Quotes & Aspas & Crase

Aspas simples (‘)

As aspas simples são muito parecidas com as aspas duplas. É usada para delimitar qualquer dado alfanumérico ou até mesmo quando precisamos usar aspas dentro de um texto qualquer.

Importante saber:
Com as aspas simples a execução de variáveis não é aceito.

exemplode utulização de aspas simples:

echo “Ev andro”
echo ‘Evandro’
echo ‘Evandro “Matos” couto’

Aspas duplas (“)

Bem parecidas com as aspas simples, uma de suas diferenças é a possibilidade de interpolação de variáveis. A interpolação nada mais é do que a inclusão de um valor de variável em outra, como mostra o exemplo a seguir:

A= 1
B=”O valor de A -e: $A”
echo $B

Barra ()

Este caractere também é utilizado quando queremos que o script trate o $ como parte do conteúdo alfanumérico e não como indicador de variáveis, como no seguinte exemplo:

Para exibir o nome de uma variável como o dólar $, é necessário especificar a barra invertida antes do nome da variável como exemplo abiaxo:

Aspas invertidas “crases” (´)

Quando utilizamos as aspas invertidas “crases” estamos usando para executar um comando, usado para executar comandos do sistema como mostra o exemplo abaixo:

Vale ressaltar que você só executará comandos os quais seu usuário tiver permissão.

Expressões regulares

Expressões regulares são formas de identificar se determinadas palavras pertencem a um conjunto ou não. Elas servem para especificar padrões de nomes que queremos chamar. Na verdade a teoria de expressões regulares é bem mais elaborada e remete a linguagens regulares. As ER são formas de indetificar determinada linguagem regular que é: Um conjunto de palavras compostas por símbolos que possuem algo de regular (repetitivo, recorrente) na sua aceitação. Isso significa que podemos escrever infinitas palavas usando uma representação finita usando loops (repetições). Nem tudo pode ser expresso em ER, mas a utilização delas facilita boa parte dos problemas de aceitação de strings. Por exemplo quando escrevemos no shell “ls *” estamos especificando uma expressão regular.

Podemos ir mais além e escrever “ls *.mp?“, o que significa “liste qualquer coisa que termine em .mp mais algum caracter”. Essas construções linguísticas com asteriscos e interrogações são expressões regulares. Portanto esta expressão é uma especificação de um padrão. Assim como aquelas máscaras usadas em gabaritos de provas que encaixam em cima da folha de respostas. Dentro dos “buracos” da mascara pode estar presente qualquer coisa, mas existe os espaços pre-definidos que evitam que todo o conjunto (de respostas erradas) seja “casado”. Então a idéia básica é essa, expressões regulares são filtros.

Mas e se por exemplo, queremos um arquivo que começa com três números quaisquer e tem duas letras maiúsculas. Daí é preciso uma especificação mais poderosa. Para isso existem alguns caracteres com significados especiais

Curingas
Os curingas ou meta-caracteres são recursos usados para especificar um ou mais arquivos ou diretórios do sistema uma única vez. Este recurso permite que se faça filtragens que será listado, copiado, etc. No Shell do Linux são utilizados 4 tipos de meta-caracteres:

* “*” – Faz referência a um nome completo/restante de um arquivo/diretório.
* “?” – Faz referência a uma letra numa posição.

[padrão] – Faz referência a uma faixa de caracteres de um arquivo/diretório. Padrão pode ser:

* [a-z][0-9] – Faz referência a caracteres de a até z seguido de um caracter de 0 até 9.
* [a,z][1,0] – Faz a referência aos caracteres a e z seguido de um caracter 1 ou 0 naquela posição.
* [a-z,1,0] – Faz referência a intervalo de caracteres de a até z ou 1 ou 0 naquela posição.

Os caracteres são “Case Sensitive”, se você desejar localizar todos os caracteres alfabéticos, deve usar [a-z ou A-Z].

Se a expressão for precedida por um ^, faz referência a qualquer caracter exceto o da expressão. Por exemplo [^abc] faz referência a qualquer caracter exceto a, b e c.

[padrões} – Expande e gera strings para pesquisa de padrões de um arquivo/diretório.

* X{ab,01} – Faz referência a seqüencia de caracteres Xab ou X01
* X{a-z,10} – Faz referência a seqüencia de caracteres Xa-z e X10.

O que diferencia este método dos outros é que a existência do arquivo/diretório é opcional para geração do resultado. Isto é útil para a criação de diretórios. Lembrando que os 4 tipos de curingas (“*”, “?”, “[]”, “{}”) podem ser usados juntos.

veja abaixo:

^ – que começa com
$ – que termina com
[…] – com as qualquer uma das letras
[^…] – que não contém as letras
“palavra1|palavra2” – palavra1 ou palavra2
A{2} – letra A duas vezes
A{2,} – letra A no mínimo duas vezes
pt{,_BR} – O shell expande para pt e pt_BR

O caso mais usável no dia a dia de expressões regulares são com o grep. O grep procura por um padrão na entrada padrão e os joga pra saída padrão caso existe esse padrão.
Exemplos:

cat arquivo.txt | grep ^void

Procura por linhas que começam com void

cat arquivo.txt | grep void$

Procura por linhas que terminam com void

cat arquivo.txt | grep “caminhonet[ea]|banana”

Procura por linhas no arquivo que contenham caminhonete, caminhoneta ou banana. Ou seja:
“caminhonet + e ou a” OU banana

Mais do Grep e Sed

O grep, como já foi dito, é um comando indispensável pra programas em shell. E em geral saber usá-lo é saber usar as expressões regulares.  Existe até as variações do grep como egrep, fgrep e rgrep.  Porém egrep é o mesmo que grep -E; fgrep é o mesmo que grep -F;  rgrep É o mesmo que grep -r. O fgrep é o mais rápido de todos porém o mais penoso em recursos ao contrário do egrep que é o que tem mais recursos, porém é o mais lento.

Expressões regulares usando grep:
. qualquer caracter

* zero ou mais ocorrências do caracter precedente

^
início de uma linha

$ final de uma linha

< início de uma palavra

> final de uma palavra

[ ] um, e apenas um dos caracteres indicados pelos colchetes

[^] quaisquer caracteres que não estejam entre os indicados pelos colchetes

toma o caracter seguinte literalmente

[[:alnum:]] Qualquer letra ou número

[[:alpha:]] Letras

[[:digit:]] Dígitos

– Intervalo (a-m = de c a m)

egrep:
+
um ou mais ocorrências do elemento precedente
?
zero ou uma ocorrência do caracter precedente
{n}
o elemento precedente ocorre exatamente n vezes
{n,}
o elemento precedente ocorre n ou mais vezes
{n,m}
o elemento precedente ocorre no mínimo n vezes e no máximo m vezes.

Comandos do Sed (alguns mais usados):

s substitui o que casar com o padrão por outra coisa
y troca um caractere por outro
p imprime a expressão
d apaga a expressão

Operadores (expressões)
. Umcaracter
* zero ou mais ocorrências do caracter anterior
(…) Atribui valor ao registrado dinâmico (mais a seguir)
1 Utiliza o primeiro registrador dinâmico

Exemplos:

$  ls | sed ‘s/jpeg/jpg/g’
Troca todas as ocorrências de jpeg por jpg.

$ echo alexandre | sed ‘y/e/E/’
Evandro
Troca todos os ‘e’ por ‘E’

Fim

Que Deus abençõe todos nós!

>_Quotes & Aspas & Crase
Tagged on:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: