Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Изменить имя файлов в папке  (Прочитано 826 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн _taras_

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Изменить имя файлов в папке
« : 19 Сентября 2024, 19:53:13 »
Приветствую всех!
Имеется огромная куча файлов с неправильным наименованием. Например, NDVI_05_98.tiff, SIPI_05_98.tiff года и месяца естественно разные, но их положение неизменно.
Можно ли, скриптом изменить так, чтобы было NDVI_98_05.tiff.
Т.е. год впереди, а месяц сзади.

Оффлайн ntfs3

  • Активист
  • *
  • Сообщений: 349
    • Просмотр профиля
Re: Изменить имя файлов в папке
« Ответ #1 : 20 Сентября 2024, 02:56:44 »
Тарасик, не отвлекай умных людей. В инете полно инфы
Вот, например:
Массовое переименование файлов
(Нажмите, чтобы показать/скрыть)

Оффлайн jurganov

  • Старожил
  • *
  • Сообщений: 1916
    • Просмотр профиля
Re: Изменить имя файлов в папке
« Ответ #2 : 20 Сентября 2024, 09:11:47 »
Массовое переименование файлов
ты уверен?? Ему ж надо, чтобы ОС определила, где в каком названии день, а где месяц. и сама выстроила в названии день и месяц в удобном ему порядке. А уже потом бы заменила (если нужно) имя на новое, правильно сгенерированное.
не думаю, что это простая задача.

Оффлайн Usermaster

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 3323
    • Просмотр профиля
Re: Изменить имя файлов в папке
« Ответ #3 : 20 Сентября 2024, 09:23:59 »
Тарасик, не отвлекай умных людей. В инете полно инфы
Правильно, тут все заняты, все отвечают на твои вопросы :D
А чего это вы тут делаете, а?

Оффлайн ntfs3

  • Активист
  • *
  • Сообщений: 349
    • Просмотр профиля
Re: Изменить имя файлов в папке
« Ответ #4 : 20 Сентября 2024, 10:22:53 »
Правильно, тут все заняты, все отвечают на твои вопросы :D
Огромное Вам спасибо за добрые дела. Вы делаете этот мир лучше, полезнее, эффективнее и конкурентоспособнее

Цитата: Правила форума
2. На форуме ЗАПРЕЩЕНО
2.3. Флудить и заниматься флеймом, а также оставлять сообщения, не относящиеся к теме обсуждения.
+25%
--ALiEN
« Последнее редактирование: 20 Сентября 2024, 12:06:28 от ALiEN »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7812
  • We were here
    • Просмотр профиля
Re: Изменить имя файлов в папке
« Ответ #5 : 20 Сентября 2024, 12:25:22 »
for FILE in ./*.tiff ; do
   NAME=${FILE%.*}
   PREF=$(echo $NAME | cut -d_ -f1)
   MON=$(echo $NAME | cut -d_ -f2)
   YEAR=$(echo $NAME | cut -d_ -f3)
   
   echo mv -v $FILE ${PREF}_${YEAR}_${MON}.tiff

done
Если результат устроит, уберите последнее echo
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн artemu88

  • Участник
  • *
  • Сообщений: 120
    • Просмотр профиля
Re: Изменить имя файлов в папке
« Ответ #6 : 20 Сентября 2024, 13:05:15 »
_taras_, добрый день!
Можно, например использовать конвеер и регулярные выражения.
Сначала, для тестирования в каталоге с файлами запускаем:
ls -1 | sed -E 's/(^.{4}_)([0-9][0-9])_([0-9][0-9])(\..+$)/mv & \1\3_\2\4/'если результат устравивает, то добавляем в конце sh:
ls -1 | sed -E 's/(^.{4}_)([0-9][0-9])_([0-9][0-9])(\..+$)/mv & \1\3_\2\4/' | shПоследняя команда выше ( с sh на конце) переименует фалы, поэтому, лучше проверить перед запуском
Тестировал на именах NDVI_05_98.tiff, SIPI_05_98.tiff и им подобных. Возможно, что в Вашем случае нужно будет подкорректировать регулярное выражение

 

Страница сгенерирована за 0.039 секунд. Запросов: 25.