bash
solution (desde que a opção de shell extglob esteja ativada - consulte manual de correspondência de padrões )
for i in 0.* ; do mv "$i" "${i##0.*(0)}" ; done
-
${i##
excluir a correspondência mais longa do início da variáveli
-
0.
corresponde à sequência de caracteres0.
-
*(0)
significa zero ou mais ocorrências de 0
ou esta solução sugerida pelo @Costas, que não precisa da opção extglob
for i in 0.* ; do mv "$i" "${i#${i%%[!0.]*}}" ; done
-
${i%%
excluir a correspondência mais longa do final dei
variable -
*
qualquer caractere, zero ou mais vezes -
[!0.]
caracteres diferentes de0.
- Portanto,
${i%%[!0.]*}
exclui efetivamente do primeiro caractere não0
ou.
até o final. Por ex:35
é excluído para0.035
,1
para0.001
,str0.00456a
para0str0.00456a
e sequência inteira parastr0.00456a
- os caracteres restantes (ex:
0.0
para0.035
e0.00
para0.001
são passados para${i#
, que exclui esses caracteres do início da variável, resultando em35
para0.035
e1
para0.001
Outras leituras: Expansão de Parâmetros