Regex no Sublime Text
Pessoal, um recurso muito bacana que encontrei no Sublime Text 2 é a possibilidade de utilizar regex para fazer replace. Para saber mais sobre regex acesse: http://docs.oracle.com/javase/tutorial/essential/regex/.
Mas antes de começar, quero agradecer ao Caio Moraes, um companheiro de trabalho que participou diretamente nesse post.
Então vamos ao que realmente interessa. Me deparei com a seguinte situação: eu tinha um insert para efetuar em base no qual constavam diversos valores, dentre eles, valores tipo number(10,2). Porém, o insert que recebi era algo como apresentado abaixo:
INSERT INTO TESTE (NOME, CIDADE, VALOR) VALUES ('Bruno','Simonsen','0,5'); INSERT INTO TESTE (NOME, CIDADE, VALOR) VALUES ('Pedro','Votuporanga','20,15'); INSERT INTO TESTE (NOME, CIDADE, VALOR) VALUES ('Joao','Rio de Janeiro','220,5'); INSERT INTO TESTE (NOME, CIDADE, VALOR) VALUES ('Maria','Bahia','0,9');
Contudo, era preciso trocar a vírgula (,) do campo valor para ponto (.). Para fazer isso, abra seu script no Sublime, vá em Find > Replace ou se gosta de um atalho assim como eu :D, digite ctrl+H.
Na rodapé do Sublime digite o regex conforme apresentado na imagem abaixo:
Clique em Replace All o resultado deverá ser o seguinte:
INSERT INTO TESTE (NOME, CIDADE, VALOR) VALUES ('Bruno','Simonsen','0.5'); INSERT INTO TESTE (NOME, CIDADE, VALOR) VALUES ('Pedro','Votuporanga','20.15'); INSERT INTO TESTE (NOME, CIDADE, VALOR) VALUES ('Joao','Rio de Janeiro','220.5'); INSERT INTO TESTE (NOME, CIDADE, VALOR) VALUES ('Maria','Bahia','0.9'); Como pode ser notado, foi efetuado o replace das vírgulas somente no campo desejado, sem peder o valor de seu respectivos componentes. Vale lembrar que você pode digitar qualquer condição válida para regex que o sublime irá efetuar a busca e se for o caso, o replace conforme apresentado no exemplo anterior.
Arquivo em Sublime Text 2