В настоящее время у меня есть большой набор каталогов с фотографиями. Каталоги в настоящее время названы в формате yymmdd_text . Я хотел бы переименовать их все в yyyy-mm-dd Text (обратите внимание на text большой буквы).

Я пытался создать рабочий процесс с использованием Automator но функция rename Finder items там довольно ограничена.

2 ответа2

0

Сохраните приведенный ниже код в текстовый файл (например, «renameDir.pl»). Затем откройте окна терминала, где находятся ваши папки, и запустите скрипт, например, renameDir.pl 14* (или любой другой шаблон, который будет соответствовать папкам, которые вы хотите переименовать).

#!/usr/bin/perl

use strict;
use warnings;
use File::Copy;

foreach my $dir (@ARGV) {
  (my $year, my $month, my $day, my $text) = ($dir =~ m/^(\d\d)(\d\d)(\d\d)_(.*)/);
  if ($year && $month && $day && $text) {
    my $Text = ucfirst($text);
    my $newDir = "20$year-$month-$day $Text";
    print "Moving \"$dir\" to \"$newDir\"\n";
    move($dir, $newDir) or die "Unable to rename $dir:\n$!\n";
  }
  else {
    warn "Unable to parse $dir\n";
  }
}

Предполагается, что все ваши новые имена папок хотят начинаться с года, например, с 20xx, а не с 19xx, но вы можете отредактировать сценарий для обработки этого по мере необходимости.

0

Не могли бы вы просто использовать команду cp для копирования и переименования вашего каталога, например?

cp /home /yymmdd_text /* /home /yy-mm-dd_text /

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .