Um pouco de bash (usando todas as práticas recomendadas!) :
shopt -s nullglob
for f in *.js; do
coffee=${f%.js}.coffee
[[ -f $coffee ]] && rm -v -- "$f"
done
-
nullglobé um comportamento opcional do shell para que*.jsseja expanda para a string vazia se não houver arquivos com extensãojs. - Use expansão de parâmetros do shell para remover a extensão
.jse substitua-o por.coffeena variávelcoffee. -
rmé usado com a opção-v(verbose) para que você veja o que está acontecendo. -
rmtambém é usado com--que marca o final das opções, caso haja um arquivo que comece com um hífen: nesse caso,rmseria confuso e tentaria interpretar uma opção. - A construção
[[ ... ]]é uma construção condicional e usa expressões condicionais . Observe que estou usando o colchete duplo robusto[[e não o único[. Prática muito boa (em bash ). - Note que a citação é perfeita. É 100% seguro em relação a arquivos com espaços ou símbolos engraçados em seu nome.
Para fins de teste, você deve colocar echo na frente de rm :
[[ -f $coffee ]] && echo rm -v -- "$f"
para que apenas ecoa o comando e não remova nada. Quando você estiver feliz com isso, remova o echo .
Aproveite!