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

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

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/' * 

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

  • Почему я вижу число как владелец / группа вместо имени?
  • Прокрутите по 384 парам и создайте 384 новых конкатенированных файла
  • Однонаправленная синхронизация / репликация большого файла постепенно
  • Как отобразить разрешения нового файла в строке состояния редактора Vim?
  • Рекурсивно найти файлы по содержанию
  • Замените номера в файле1 соответствующей строкой в ​​файле2
  • Загрузите только часть файла
  • Запретить File IO для процесса, за исключением FIFO
  • Как я могу увидеть историческое время изменения файла?
  • Эквивалент memmove на файлы: скопируйте диапазон байтов в более раннюю позицию
  • Файл Sudoers перепутался
  • Найдите различия между владельцами двух домашних папок?
  • Interesting Posts

    определение локали с французским республиканским календарем

    Какой сигнал отправляет X своим клиентам, когда он получает SIGINT?

    Как настроить файл my.cfg для mysql, который был установлен из источников?

    Как изменить форму, цвет и мигание Консоли Linux?

    Как предотвратить переключение CTS при каждом открытии или закрытии tty?

    Ошибка входа в систему Putty через SSH (ошибка сети: время ожидания подключения)

    Что такое сообщение об ошибке tar «Не удается открыть: неверный аргумент»

    Как печатать на принтере Lexmark 5630 с использованием CUPS

    Pacman всегда терпел неудачу при обновлении (неизвестное доверие)

    Как назначить вывод cat сценария bash переменной в другом скрипте

    Сортировка по одному столбцу, затем

    Не удалось отправить письмо с помощью mailx в Light ubuntu vmware

    Что контролирует домашний каталог в таких приложениях, как Geeqie и Thunar?

    Почему существует * Когда упоминается Unix по всему Интернету?

    Как разбить массив Bash на аргументы

    Linux и Unix - лучшая ОС в мире.