Sobrescreve um monte de nomes de arquivos [duplicados]

0

Eu tenho algumas pastas contendo nomes de arquivos grandes que baixaram em um formato de nomenclatura estranho e obscurecem a extensão do arquivo e eu quero converter em algo muito simples.

Aqui está um exemplo do que eu quero fazer. Digamos que esses quatro arquivos estejam localizados em uma das pastas:

HTTP_services.cgi?FILENAME=%2Fdata%2FMERRA2%2FM2I6NPANA.5.12.4%2F1992%2F08%2FMERRA2_200.inst6_3d_ana_Np.19920818.nc4&FORMAT=bmM0Lw&BBOX=-90%2C-180%2C90%2C180&LABEL=MERRA2_200.inst6_3d_ana_Np.19920818.SUB.nc4&SHORTNAME=M2I6NPANA&SERVICE=
HTTP_services.cgi?FILENAME=%2Fdata%2FMERRA2%2FM2I6NPANA.5.12.4%2F1992%2F08%2FMERRA2_200.inst6_3d_ana_Np.19920819.nc4&FORMAT=bmM0Lw&BBOX=-90%2C-180%2C90%2C180&LABEL=MERRA2_200.inst6_3d_ana_Np.19920819.SUB.nc4&SHORTNAME=M2I6NPANA&SERVICE=
HTTP_services.cgi?FILENAME=%2Fdata%2FMERRA2%2FM2I6NPANA.5.12.4%2F1992%2F08%2FMERRA2_200.inst6_3d_ana_Np.19920820.nc4&FORMAT=bmM0Lw&BBOX=-90%2C-180%2C90%2C180&LABEL=MERRA2_200.inst6_3d_ana_Np.19920820.SUB.nc4&SHORTNAME=M2I6NPANA&SERVICE=
HTTP_services.cgi?FILENAME=%2Fdata%2FMERRA2%2FM2I6NPANA.5.12.4%2F1992%2F08%2FMERRA2_200.inst6_3d_ana_Np.19920821.nc4&FORMAT=bmM0Lw&BBOX=-90%2C-180%2C90%2C180&LABEL=MERRA2_200.inst6_3d_ana_Np.19920821.SUB.nc4&SHORTNAME=M2I6NPANA&SERVICE=

Eu gostaria que eles fossem renomeados para algo muito básico como

1.nc4
2.nc4
3.nc4
4.nc4

Os novos números não têm relação com os nomes de arquivos originais. Eu só quero ser capaz de iterar facilmente através deles com outro programa que eu tenha.

Eu tentei usar programas de renomeação em lote como pyrenamer e metamorphose, mas eles parecem ser bons em substituir padrões em nomes com outros padrões, não apenas sobrescrevendo o nome com um padrão.

    
por Jake McClenny 17.08.2017 / 20:39

1 resposta

1

Usando um loop simples:

count=0; for file in HTTP_services*; do mv "$file" "$(( count++ )).nc4"; done;

use-o com echo primeiro para garantir que ele funcione como você deseja:

$ count=0; for file in HTTP_se*; do echo "mv" "$file" "$(( count++ )).nc4"; done;
mv HTTP_services.cgi?FILENAME=%2Fdata%1 1.nc4
mv HTTP_services.cgi?FILENAME=%2Fdata%2 2.nc4
    
por Ravexina 17.08.2017 / 20:50