Переименуйте кучу файлов с определенным шаблоном

У меня есть количество файлов со следующими именами.

2007-07-22-2300-11S.NAN___024_ABI___HH_E_SAC 

Где:

  • 2007-07-22 – дата.
  • 2300-11S – hhmm-sec.
  • NAN___024 является сетевой сетью для каждого файла (не требуется в новом имени).
  • ABI__HH_E – это название станции с восточным каналом.
  • SAC – это расширение.

И я хочу переименовать все файлы в следующем формате:

 2007.204.23.00.ABI.e 

Где:

  • 2007 год.
  • 204 – юлианский день (07-22).
  • 23.00 – время.
  • ABI – это станция.
  • e – имя канала.

2 Solutions collect form web for “Переименуйте кучу файлов с определенным шаблоном”

Предполагая, что вы:

  • хотел «1 + Порядковый срок» в позиции 2.
  • «_» – пронумерованные названия станций.
  • нижний регистр имени канала

Затем это должно выполнить требуемое преобразование.

 $ ls 2007-07-22-2300-11S.NAN___024_ABI___HH_E_SAC $ for i in *; do od="$(expr $(date +%j -d "${i:0:10}") + 1 )"; chn="${i:39:1}"; sta="$(echo ${i:30:6} | tr -d '_')"; mv "$i" "${i:0:4}.$od.${i:11:2}.${i:13:2}.$sta.${chn,,}" ; done $ ls 2007.204.23.00.ABI.e 

Для массового переименования prename – ваш друг. В этом случае:

 prename 's/^(\d*)-(\d*-\d*)-(\d*)-.*___\d*_(\w*)___\w*_(\w*)_\w*/$1.$2.$3.$4.$5/' * 

(игнорируя юлианскую дату, пока не будут выяснены соответствующие вопросы).

  • Выберите наиболее подходящее имя файла
  • Идентификатор файла, который не изменяется при переименовании
  • Интерактивное удаление файлов, перечисленных с помощью путей в текстовом файле
  • Автоматическое перемещение файлов в каталог один за другим и только тогда, когда целевая папка пуста
  • Изменение действия Open Open Folder Folder Folder
  • Как переименовать файлы с помощью имени каталога?
  • (Bash) Переименование расширений файлов
  • Postfix больше не регистрируется в / var / log / mail после его удаления и повторного создания?
  • Определите размер резервной копии за 7 дней
  • Запись неограниченного количества определенных значений в файл
  • Работа для хранения количества XML-файлов
  • Linux и Unix - лучшая ОС в мире.