Páginas

terça-feira, 22 de fevereiro de 2011

Criando um Alias para inverter Strings

Aqui ensinarei um truque muito útil para inverter uma string na linha de comando:

$ echo 'string a ser invertida' | rev (funciona com aspas simples ou duplas)

Para aqueles sites protetores de link chatos que possuem o endereço do link (por exemplo, megaupload) na barra de endereços do navegador. (quem nunca encontrou um desses por aí e ficou extremamente incomodado de ter que digitar letra por letra?)

Exemplo:

$ echo 'GFEDCBA=d?/moc.daolpuagem.www//:ptth' | rev

nos dará:

http://www.megaupload.com/?d=ABCDEFG

E pronto! Você já pode sair por aí invertendo o que quiser. Se quiser aprender mais um pouco, continue lendo.

Podemos então aprimorar este comando, afinal, é um pé no saco ficar digitando toda vez "echo …" . Ensinarei como fazer isso. Daremos ao nosso novo comando um "apelido" que se chamará invert. Como fazer isso? Vá à sua pasta home no Ubuntu e abra o arquivo .bashrc (via terminal), com o editor de sua escolha. Adicione a seguinte linha no arquivo e salve:

alias invert='~/.invert_addr.sh'


O que acabamos de fazer? "Apelidamos" de invert a execução de um script que conterá nossa linha de echo, veremos no final o que esta linha implicará. Agora temos que criar o script .invert_addr.sh (note que eu optei por deixar oculto este arquivo. Você pode ou não ocultá-lo, o importante é colocar o caminho certo para ele no alias. No meu caso, a pasta home). Volte ao terminal e abra então o arquivo com seu editor de texto e adicione as seguintes linhas:

#!/bin/bash

echo "$1" | rev


Salve seu arquivo e agora libere sua execução, fazendo:

$ chmod 777 .invert_addr.sh

E pronto! Feche o terminal e abra-o novamente, testando o seu novo comando:

$ invert abcde

Isso deverá resultar:

edcba

Esta foi a forma que eu encontrei para facilitar a minha vida. Se você conhece alguma outra forma (mais fácil ou não) de realizar a mesma coisa, por favor, deixe nos comentários! Abraços e nos vemos na estrada!

4 comentários:

  1. acho que no comando: alias invert='./.invert_addr.sh' tem q ser alias invert='~/.invert_addr.sh'

    ResponderExcluir
  2. Verdade, o . só funciona quando você tá na home. Mudou de pasta, não funciona mais, valeu!

    ResponderExcluir
  3. poe esse alais no .bashrc e funciona sempre
    e nem precisa das os chmod

    ResponderExcluir
  4. E eu que escrevi um programinha só para inverter essas malditas url`s...kkkkkkkkkk

    Bacana a dica!

    ResponderExcluir