Eu tenho vários arquivos da seguinte maneira:
04602635_b0294.DAT20120807164534
04602637_b0297.DAT20120807164713
04602638_b0296.DAT20120807164637
04602639_b0299.DAT20120807164819
04602640_b0298.DAT20120807164748
04602641_b0300.DAT20120807164849
04602650_b0301.DAT20120807164921
04602652_b0302.DAT20120807164956
Eu preciso renomeá-los para excluir o prefixo. Ele precisa ficar assim ..
b0294.DAT20120807164534
b0297.DAT20120807164713
b0296.DAT20120807164637
b0299.DAT20120807164819
b0298.DAT20120807164748
b0300.DAT20120807164849
b0301.DAT20120807164921
b0302.DAT20120807164956
EDITAR
Esqueci de acrescentar que estou usando o Solaris.
"${file#*_}"
?echo
, basta canalizar a saída do scriptbash
.Você pode usar a ferramenta
rename
para isso:Se você anexar,
-n
ele não renomeará nada e apenas mostrará o que teria sido feito sem-n
.Em resposta ao comentário do rush: my
rename
is é na verdade um link paraprename
operl
pacote do Debian e do Ubuntu .fonte
rename
nem sempre é o mesmo em sistemas diferentes e, às vezes, sua sintaxe pode ser diferente.perl-rename
não é nada específico para o Debian. Não é apenas chamado,rename
masperl-rename
ouprename
em outras distribuições. No entanto, sempre deve estar nos repositórios e um também é instalado com perl .rename
e provavelmente será instalado sem solicitar explicitamente um pacote que não é chamado apenasrename
, é específico do Debian. Outras distribuições Linux chamam o comandoprename
ouperl-rename
para evitar confusão com o util-linuxrename
e não o empacotam com o pacote perl, e não conheço nenhum unix que não seja Linux que o envie sob o nomerename
ou o envie em um instalação padrão com qualquer nome.