Você pode usar o comando rename
da seguinte forma:
$ rename -n 's/MOD11A1\.A2010(...)\..*/modis.hdf/' MOD*.hdf
rename(MOD11A1.A2010001.h24v06.006.2016025150444.hdf, modis001.hdf)
rename(MOD11A1.A2010002.h24v06.006.2016025151748.hdf, modis002.hdf)
rename(MOD11A1.A2010003.h24v06.006.2016025163706.hdf, modis003.hdf)
Após o teste, remova -n
para realmente renomear arquivos.
Notas
-
s/old/new
replace old
com new
-
\.
literal .
-
...
três caracteres que poderiam ser qualquer coisa
-
(some chars)
save some chars
para referência posterior com
- Poderíamos usar uma regex simples para corresponder à primeira parte do nome do arquivo no comando
rename
, como a resposta de muru. Às vezes, você quer usar uma expressão mais explícita para distinguir entre arquivos que você quer ou não, ou para ter certeza de que seu regex não irá sugar muitos caracteres. Geralmente há muita flexibilidade para resolver esse tipo de problema.
Observe que isso não oferece exatamente o que você pediu; mantém a largura fixa dos números. Eu fiz isso porque é uma boa idéia usar números de largura fixa em nomes de arquivos (caso contrário, eles serão classificados de forma confusa, com 10 antes de 2, por exemplo) (e porque eu não descobri como use rename
para criar os nomes que você realmente pediu ... se eu fizer, atualizarei minha resposta resposta de muru faz isso ...).
Note que Perl rename
não está incluído na instalação padrão 17.10 , portanto, se você estiver executando 17.10 (ou para futuros leitores, talvez uma versão posterior), comece executando
sudo apt install rename