REGEX direto no Bash

regexbash_abertura.png

Geralmente quando validava uma sequência de caracteres em shell script usando uma expressão regular eu recorria a uma ferramenta externa (egrep, sed etc) para fazê-lo —  algo como neste exemplo de validação de endereços de e-mail utilizando o egrep:

$ echo "usuario@email.com" |\
  egrep "[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$" >/dev/null ; echo $?
0
$ echo "usuario%email-123" |\
 egrep "[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$" >/dev/null ;  echo $?
1

Ou seja, o retorno do valor 0 para significando verdadeiro e do valor 1 indicando falso.

Continuar lendo

O comando ‘fold’

fold-1_abertura.png

O comando fold é um daqueles programas desconhecidos que sempre são instalados¹, que acabamos descobrindo por acaso e que depois ficamos nos perguntando como conseguíamos viver sem. 🙂

Basicamente o fold serve para quebrar as linhas de um arquivo texto para fazê-lo “caber” corretamente na largura da sua tela, impressora ou mesmo então para uma página web — sim, é o que uso para arrumar as saídas dos comandos para publicar aqui,

(¹) Ele integra o pacote GNU core utilities.

Continuar lendo

JSON em shell script

json-shell_abertura

Não é novidade que diversos programas e serviços* retornam arquivos no formato JSON e que estes podem ser processadas de modo (quase) transparente por diversas linguagens de programação. Mas há alguma maneira de trabalhar com estes arquivos diretamente em shell script? Ou seja, pegar a saída “cuspida”em JSON de alguma ferramenta e interpretá-lo de forma “natural” sem recorrer a sequências de awk, grep, sed etc?

Pesquisando eu descobri que sim. Com a ajuda do jq programa que, conforme descrito na página do projeto, é uma espécie de sed para arquivos JSON. 🙂

(*) Só lembrando que o AWS CLI pode ser configurado para exibir suas saídas em JSON.

Continuar lendo

sudo BANG BANG

sudo_BANG_BANG

Confesso que não conhecia esta e  é sempre bom aprender truques novos. Você digita um comando que precisaria ser executado com direitos de administrador porém se esquece de trocar o usuário ou começar a linha com “sudo” e aperta «Enter».

Claro que ele não irá funcionar mas basta digitar “sudo !!” — que também é conhecido como sudo bang bang — e pronto! 🙂

Introdução ao SQLite3

sqlite3_basico

De acordo com o autor, o SQLite é a implementação um engine de banco de dados SQL transacional, autocontido e que dispensa servidor ou mesmo procedimento de instalação para funcionar. Ele é gratuito, de domínio público e poden podem* ser utilizado para qualquer finalidade. Hoje é o banco de dados mais amplamente usado no mundo, se você tem um dispositivo rodando Android, iOS ou mesmo a finada Asha Platform (da Nokia) você usa o SQLite.

A ideia aqui é passar um básico do uso do uso SQLite e usando-o diretamente pela linha de comando, mas são conceitos válidos para qualquer outra linguagem de programação.

(*) Que feio, erro primário!

Continuar lendo