Перезаписать кучу имен файлов [дублировать]

На этот вопрос уже есть ответ здесь:

У меня есть несколько папок, каждая из которых содержит большие имена файлов, загруженные в странный формат имен и скрывает расширение файла, и я хочу преобразовать во что-то очень простое.

Вот пример того, что я хочу сделать. Допустим, эти четыре файла находятся в одной из папок:

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=

Я бы хотел, чтобы их просто переименовали во что-нибудь очень простое, например

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

. Новые числа не имеют отношения к исходным именам файлов. Я просто хочу иметь возможность легко перебирать их с помощью другой имеющейся у меня программы.

Я попытался использовать программы пакетного переименования, такие как pyrenamer и metamorphose, но они, похоже, хорошо заменяют шаблоны в именах другими шаблонами, а не просто перезаписывают имя шаблоном.

0
задан 17 August 2017 в 11:39

1 ответ

Используя простой цикл:

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

использование это с echo сначала для проверки это работает, как Вы желаете:

$ 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
1
ответ дан 2 November 2019 в 10:22

Другие вопросы по тегам:

Похожие вопросы: