-
-
Save tapajos/1784083 to your computer and use it in GitHub Desktop.
| #!/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 |
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
TaQ, usa a formatação de código que o gist oferece.
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
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.
Nem tinha percebido.
Na verdade acho que não entendi de que barra você está falando...
É 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
find . -iname '*.rb' -print -exec perl -pi -e 's/[\t ]+$//g' {} \;Perl não vale, pô. :-)
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}}
;-)
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.
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' {} \;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! :-)
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. :-)
Você não conhecia essa?
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 ` ? :-)
Olha se o seu bloco ficou melhor agora!! :-)
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?
@!#$@$@ ... 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 ;-)
Usa o sed com a edição in-place:
!/bin/bash
find . -iname '*.rb' -print -exec sed -ie 's/[\t ]+$//g' {} ; 2>/dev/null