removido
(usa Nenhuma)
Enviado em 22/01/2015 - 20:08h
Preto_Cunha escreveu:
A bom, não percebi que eram direotiros....
Bom mas testei com o que o amigo disse ali:
for f in \#*; do mv $f ${f###}; done
E funciona perfeitamente!!
Ate tenho uma pergunta para ele hehe
O por que desse "###" dentro do for ???
Talvez tenha ficado esquisito a sequência de três cerquilhas ...
As duas primeiras são expansões de parâmetros em variáveis para remover prefixos, no manual do bash você encontrará uma referência assim:
${parameter##word}
A terceira cerquilha é apenas o prefixo que desejamos remover. Se todos os diretórios tivessem o prefixo "#HashTag_", o comando ficaria:
mv $f ${f###HashTag_}
Esta mesma sintaxe funciona no ksh. Já no zsh, precisa escapar a cerquilha, que afinal, até ficaria mais legível ... :
mv $f ${f##\#Hastag_}
Voltando ao caso original e, embora menos performático neste caso, utilizar o 'sed' seria uma possível solução:
for f in \#*; do mv $f $(sed 's/^#//' <<< "$f" ); done
E até apelar para as extensões GNU do sed:
sed 's/^#\(.*\)$/mv "&" \1/e' <(ls -d \#*)
Abraço
#-------------------------------------------------------------------------------------#
"Linux é algo que me fez ter Gosto pela Informática, se tornou um Vicio" - Carlos A. P. Cunha