Expressões regulares, o básico – parte 1

regex1_abertura

Expressão regular — ou simplesmente REGEX para encurtar — é uma sequência de caracteres que define um padrão de busca, é geralmente utilizada dentro de algoritmos de pesquisa de texto para busca e/ou substituição de sequências/padrões de caracteres dentro de strings e Por sua praticidade, está implementada dentro de linguagens de programação, ferramentas e até mesmo alguns aplicativos.

Claro que isto aqui não tem o objetivo de ser um tratado sobre o assunto, servindo mais como uma introdução básica para que a visão de algo como um ^[A-Za-z]+ [0-9].*[A-Z][a-z]+$ deixe de causar traumático.

Nesta primeira parte dois conceitos importantes em REGEX, a quantificação (número de vezes que repete, ou não) e o grupo (lista de possíveis ocorrências). E para os exemplos resolvi usar um trauma pessoal, a grafia do meu nome, ou seja, aquilo que me faz recitar o mantra “com «i», dois «n» e «i» no final” sempre que preciso explicar a alguém como escrever meu nome. 🙂

Continuar lendo

Declaração de variáveis no Bash

declare1_abertura

Depois de ter tratado, não necessariamente nesta ordem, de arrays, números inteiros e strings em Bash seria interessante fazer duas coisas: (i) citar os outros tipos de variáveis disponíveis e (ii) tratar de opções bastante interessantes disponíveis no comando declare. Ele é utilizado para definir tanto o tipo da variável como também habilitar, ou desabilitar, determinados atributos desta.

Para facilitar seguirei a ordem das opções conforme estão listadas em “help declare” e assim aproveitar para também comentar algo mais sobre os tipos já citados.

Continuar lendo

Troca de caixa em Bash (método alternativo)

upperlower1_abertura

Algo para complementar a manipulação de strings em Bash com uma última dica sobre o assunto de conversão de caixa dos caracteres — aquela coisa de se mudar entre maiúsculas e minúsculas. Minha primeira sugestão foi usar o comando declare para alterar os atributos da string e deixar o Bash cuidando disto sozinho e até propor duas funções¹ para simplificar a tarefa. Porém, como sempre, existe outro modo para fazer a mesma coisa. 🙂

(¹) Mais precisamente as funções toupper() e tolower(), análogas às suas homônimas em AWK.

Continuar lendo

Inicializando com Linux em USB no MacBook

enterprise1_abertura

Quem tem um MacBook¹ sabe da frustração de não conseguir inicializá-lo normalmente em Linux a partir de dispositivos USB e tendo de recorrer à alguma mídia óptica — de preferência as regraváveis. Depois de tentar sem sucesso diversos tutoriais e ferramentas até já tinha desistido quando, por acidente, uma publicação sobre a disponibilização do PIXEL para computadores no blog do Raspberry Pi mostrou a solução para o problema.

(¹) Não só o MacBook mas com certeza qualquer outro computador com processador Intel fabricado pela Apple.

Continuar lendo

Trabalhando com números em Bash

bashnumbers_abertura

E já que tratei de arrays e de strings em Bash vale a pena aproveitar a oportunidade para fazer o mesmo com os tipos numéricos em Bash ou, melhor, do tipo numérico já que o único tipo suportado é o conjunto dos números inteiros. Claro que  é possível fazer operações com números racionais e trabalhar com eles nos scripts mas neste caso deve-se recorrer a programas externos como awk, bc, qalc (parte do qalculate), uma linguagem de programação etc.

Continuar lendo

Manipulação de strings em Bash

stringbash_abertura

Não só é possível utilizar expressões regulares diretamente dentro do Bash e assim acelerar a execução de um script como também pode-se aproveitar algumas das facilidades no tratamento de strings — ou cadeias de caracteres se preferir — para não só ganhar alguma velocidade como também dar um pouco mais de clareza no código e, ao mesmo tempo, resolver algumas limitações conhecidas de algumas ferramentas.

Continuar lendo