Skip to content

Instantly share code, notes, and snippets.

@tapajos
Created February 9, 2012 23:01
Show Gist options
  • Select an option

  • Save tapajos/1784083 to your computer and use it in GitHub Desktop.

Select an option

Save tapajos/1784083 to your computer and use it in GitHub Desktop.
Remove whitespaces e linhas em branco duplicadas
#!/usr/bin/env bash
for fname in $(find . -name "*.rb" -print)
do
cat -s ${fname} | sed 's/[\t ]+$//g' > ${fname}.new &&
mv ${fname}.new ${fname}
done
@taq

taq commented Feb 10, 2012

Copy link
Copy Markdown

Putz, tá comendo uma barra ali, o certo é ficar (deixa tentar de novo):

find . -iname '*.rb' -print -exec sed -ie 's/[\t ]+$//g' {} ; 2>/dev/null

@tapajos

tapajos commented Feb 10, 2012

Copy link
Copy Markdown
Author

TaQ, usa a formatação de código que o gist oferece.

@taq

taq commented Feb 10, 2012

Copy link
Copy Markdown

Que coisa, a formatação aqui tá comendo aquela barra antes do $, que diacho! Tem que "escapar" ela pra por no comentário, e parece que no código também. :-p

@taq

taq commented Feb 10, 2012

Copy link
Copy Markdown

Mas olha lá no seu código, ela foi comida também. :-( Se deixar sem ela, ele não funfa corretamente pra pegar os espaços do final da linha.

@tapajos

tapajos commented Feb 10, 2012

Copy link
Copy Markdown
Author

Nem tinha percebido.

@tapajos

tapajos commented Feb 10, 2012

Copy link
Copy Markdown
Author

Na verdade acho que não entendi de que barra você está falando...

@taq

taq commented Feb 10, 2012

Copy link
Copy Markdown

É aquela da repetição no comando do sed, “barra mais cifrão“.
Eu até tentei sem a formatação pra ver se não era engolida. :-p

@tapajos

tapajos commented Feb 16, 2012

Copy link
Copy Markdown
Author
find . -iname '*.rb' -print -exec perl -pi -e 's/[\t ]+$//g' {} \;

@taq

taq commented Feb 16, 2012

Copy link
Copy Markdown

Perl não vale, pô. :-)

@tapajos

tapajos commented Feb 16, 2012 via email

Copy link
Copy Markdown
Author

@taq

taq commented Feb 17, 2012

Copy link
Copy Markdown

Já que vale outra coisa senão o arroz-com-feijão do bash, faz em Ruby mesmo:

Dir.glob("*.rb") {|file| co = File.read(file).gsub(/[\t ]+$/,""); File.open(file,"wb") {|nf| nf<<co}}

;-)

@tapajos

tapajos commented Feb 17, 2012 via email

Copy link
Copy Markdown
Author

@tapajos

tapajos commented Feb 17, 2012

Copy link
Copy Markdown
Author

Tag,

Então outro desafio. Via find pegar apenas arquivos não ocultos e que não sejam binários.

Exemplo:

pegar arquivos txt, rb, erb, js mas não pegar jpg etc.

@tapajos

tapajos commented Feb 17, 2012

Copy link
Copy Markdown
Author

A versão atual está assim:

find * -type f \( -name '*.rb' -o -name '*.js' -o -name "*.erb" -o -name "*.haml" \) -print -exec perl -pi -e 's/[\t ]+$//g' {} \;

@taq

taq commented Feb 17, 2012

Copy link
Copy Markdown

Eu fiz assim:

find -type f ! -iname ".*" 2> /dev/null -exec file -i {} \; | grep -v "binary$" | cut -f1 -d':'

Parece que funfou, se não funfou, amanhã eu vejo, tô podre de sono desde manhã e terminei o trampo agora! :-)

@taq

taq commented Feb 17, 2012

Copy link
Copy Markdown

Cumé que é a do teu bloquinho ali? Syntax highlight começando com as três ` tá dando esse trem doido ali de cima. Preguiça de ver. :-)

@tapajos

tapajos commented Feb 17, 2012

Copy link
Copy Markdown
Author

Você não conhecia essa?

@taq

taq commented Feb 17, 2012

Copy link
Copy Markdown

Vixi, eu conto nos dedos da mão quantas vezes colei código por aqui. Eu sei, eu sei, eu devia aproveitar mais blá blá blá etc e tal, mas não rolou. :-) E nem havia visto a formatação do treco ... mas diz aí, como que teu bloquinho ficou mais bonitinho que o meu usando as 3 ` ? :-)

@tapajos

tapajos commented Feb 17, 2012

Copy link
Copy Markdown
Author

Olha se o seu bloco ficou melhor agora!! :-)

@taq

taq commented Feb 17, 2012

Copy link
Copy Markdown

Aeeee agora ficou mais bunitinho, só por o shell lá? No de Ruby ficou aparecendo "ruby" embaixo, achei feio ...
Mas e aí, o script funfou?

@tapajos

tapajos commented Feb 17, 2012 via email

Copy link
Copy Markdown
Author

@taq

taq commented Feb 17, 2012

Copy link
Copy Markdown

@!#$@$@ ... detalhes que a gente não vê quando está com pressa. Agora ficou bonito, thanks. :-)
Nota mental: "não esquecer a linha em branco nos blocos do Gist ... e o menino sabe demais!" (essa última só quem é fã de Simpsons vai entender ;-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment