qua
ago 31st

Ordenando conteúdo de arquivo via bash unix ...

O comando sort ajuda muito quando precisamos fazer ordenações simples de palavras, números ou datas dentro de arquivos texto, cvs, etc. Existem muitas outras maneiras, mas nenhuma tão rápida como esta.
Fica a dica:

Listando os arquivos e exibindo o conteúdo do arquivo lista_de_clientes.txt

> ls -la
-rw-r--r--   1 amorim  staff      58 Aug 31 19:11 lista_de_clientes.txt
> cat lista_de_clientes.txt
mauricio
amorim
wordpress
wordpress
wordpress
linux
bash

Usando o comando sort com o parâmetro -u para eliminar itens duplicados e usando >> para atribuir o resultado ao arquivo lista_de_clientes_ordenada.txt

>  sort -u lista_de_clientes.txt >> lista_de_clientes_ordenada.txt
>  cat lista_de_clientes_ordenada.txt
amorim
bash
linux
mauricio
wordpress

Referência:
Só Linux

dom
jul 11th

Erro ao instalar MySql com Homebrew no MacOS ...

Ao tentar instalar o MySql com Homebrew no meu MacOS Snow Leopard 10.6.4 obtive o seguinte erro:

macos-snow ~  $ brew install mysql
==> Downloading ftp://ftp.cwru.edu/pub/bash/readline-6.0.tar.gz
curl: (7) couldn't connect to host

Este erro pode ocorrer se você re-instalou o seu SO ou está com uma máquina nova porque o MySql depende do bash e o Readline é um componente para edição e histórico da linha de comando por isso o Readline é instalado antes da instalação do MySql.

A solução mais rápida foi editar a fórmula para instalação do Readline em /usr/local/Library/Formula/readline.rb e trocar o endereço ftp://ftp.cwru.edu/pub/bash/readline-6.0.tar.gz por ftp://ftp.gnu.org/pub/gnu/readline/readline-6.0.tar.gz, no meu caso isto aconteceu porque o primeiro endereço não estava respondendo.

class Readline  Formula
  url 'ftp://ftp.cwru.edu/pub/bash/readline-6.0.tar.gz'
  md5 'b7f65a48add447693be6e86f04a63019'
  homepage 'http://tiswww.case.edu/php/chet/readline/rltop.html' 

   ...
OS X provides the BSD Readline library. In order to prevent conflicts when
programs look for libreadline we are defaulting this GNU Readline installation
to keg-only.
   ...

Fica aqui a dica também se você quiser editar fórmulas para instalar com o Homebrew, no diretório /usr/local/Library/Formula/ irá encontrá-las. Para criar novas fórmulas visite Wiki do Homebrew ou leia este post do AkitaOnRails.

Mais informações:
– Bash-4.0 available for FTP
- Use readline instead of libedit

ter
mar 16th

Melhorando o prompt do bash para RVM ...

Esses dias configurei meus sistemas operacionais para usar RVM que serve para gerenciar diferentes instalações do Ruby na mesma máquina.

Para instalar no Snow Leopard segui o tutorial do Akita “Limpando meu Ambiente de Desenvolvimento” e para instalar no Ubuntu segui o post do Barenko “Preparando o Ubuntu para múltiplos ambientes Ruby utilizando RVM” que é mais ou menos uma “tradução” do post do Akita para Ubuntu. Deixei tudo igual com exceção da linha onde tem “/var/lib/gems/1.8/bin/rvm-install” que alterei para

~/rvm-install

Porém como eu uso Git uma coisa que estava me incomodando é que o prompt do Bash em ambos SO não estavam adequados para mostrar a versão da RVM e o branch atual do Git ao mesmo tempo, então fiz algumas e alterações e encontrei algumas “frescuras a mais” para personalizar o prompt.
Substitua a linha que começa com “expost PS1=’….” no arquivo ~/.bashrc (Ubuntu) ou ~/.bash_profile (MacOS) para:

sudo gedit ~/.bashrc
export PS1='\[\033[38m\]\u\[\033[32m\] \w \[\033[1;33m\]`~/.rvm/bin/rvm-prompt i v
`\[\033[0;31m\] `git branch 2> /dev/null | grep -e ^* | sed -E s/^\\\\\*\ \(.+\)$/\(\\\\\1\)\ /
`\[\033[37m\]$\[\033[00m\] '

Com isto o prompt ficará assim

seu_usuario ~/projetos/blog ruby-ree  ( working ) $

Segue uma tabela com as cores existentes, se você quiser deixar a fonte em negrito use 1; ao invés de 0;

"\033[0;32m"
"\033[1;32m"

Cores
corPadrao=”\033[0m”
preto=”\033[0;30m”
vermelho=”\033[0;31m”
verde=”\033[0;32m”
marrom=”\033[0;33m”
azul=”\033[0;34m”
purple=”\033[0;35m”
cyan=”\033[0;36m”
cinzaClaro=”\033[0;37m”
amarelo=”\033[0;33m”
branco=”\033[1;37m”

Aproveitando que este post é sobre RVM, se alguém tiver dificuldades em rodar o script/console dentro de algum ambiente de RVM dá uma olhada neste post que tem uma solução para este problema.

Referências:
Limpando meu Ambiente de Desenvolvimento
Preparando o Ubuntu para múltiplos ambientes ruby utilizando RVM
http://ubuntuforums.org/archive/index.php/t-31247.html
http://www.vivaolinux.com.br/dica/Shell-script-com-texto-colorido