Переименуйте файл в терминале Mac OS с помощью Regex

Сотни изображений нужно переименовать с помощью команды терминала с помощью regex на MacOS 10.9 Mavericks.

Файлы называются следующим образом:

0045AW489R3T(IPCAM)_0_20131124101245_931.jpg 0021DF025C8E(IPCAM)_0_20131127101721_44591.jpg 389223GT4Z6W(IPCAM)_0_20131128103423_7893282.jpg 

Они должны быть переименованы в это:

 2013-11-24 10-12-45.jpg 2013-11-27 10-17-21.jpg 2013-11-28 10-34-23.jpg 

Может ли кто-нибудь показать мне, как это сделать?

2 Solutions collect form web for “Переименуйте файл в терминале Mac OS с помощью Regex”

Можешь попробовать

 for a in *.jpg ; do mv -- "$a" "${a:22:4}-${a:26:2}-${a:28:2} ${a:30:2}-${a:32:2}-${a:34:2}.jpg" ; done 

Немного уродливый, но он должен выполнить свою работу. Как и всегда, обязательно проверьте на копии раньше.

Если первая часть имен файлов не всегда имеет одинаковую длину, вы можете использовать awk для извлечения строки после второго _ и использовать первые 8 цифр для создания вашего имени файла:

 #!/usr/bin/env bash for file in folder/*; do outName=$(awk -F"_" '{ print substr($3,1,4)"-"substr($3,5,2)"-"substr($3,7,2) }' <<< "${file}").jpg mv "${file}" "${outName}" done 
  • Dotfile не работает в текущей оболочке, нужен новый
  • Предотвращать передачу SSH-клиента переменной TERM на сервер?
  • изменить внешний вид терминала в соответствии с сервером
  • Команды командной строки терминала
  • Восстановление невидимых экранов и выпадающих списков на linux
  • удалить строку в vi
  • Что такое псевдотерминалы (pty / tty)?
  • прозрачный курсор urxvt
  • Что такое bitwise.c ~?
  • Проблема Tmux Terminfo с привязкой клавиш Zsh
  • Отключить -skip-grant-tables в MySQL
  • Linux и Unix - лучшая ОС в мире.