Как я обнаруживаю группы общих строк в именах файлов

Я пытаюсь посмотреть на набор старых версий

Я не уверен, говорите ли Вы о "наборе старых версий" одного файла, "набор старых версий" из нескольких файлов.

Для визуализации нескольких старых версий одного файла самое простое среднее должно отобразить свое дерево версии (ct lsvtree -graph File), и затем выберите версию, щелкните правой кнопкой по ней и'Send To'редактор, который принимает несколько файлов (как Блокнот ++). В некоторых нажимают Вас, будет иметь представление тех старых версий.
Примечание: у Вас должно быть CC6.0 или 7.0.1 IFix01 (7.0.0 и 7.0.1 сбоя к 'отправленному в' файл со следующим сообщением об ошибке"Access to unnamed file was denied")

Но визуализировать несколько старых версий различных файлов, я рекомендовал бы динамическое представление и редактирование спецификации конфигурации того представления (а не представление снимка, Вы в настоящее время работаете с), для быстрого выбора всех тех старых файлов (надо надеяться, через простое избранное правило как'element * aLabel')


[Из комментариев:]

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

Идиоматический путь посредством динамического представления (что Вы настраиваете с той же самой спецификацией конфигурации, чем Ваше существующее представление снимка).

Можно затем просмотреть (как в 'каталоге изменения к') различные расширенные пути файла.

Если Вы хотите кошке все версии ответвления файла, Вы входите:

cd /view/MyView/vobs/myVobs/myPath/myFile@@/main/[...]/maBranch
cat 1
cat 2
...
cat x

'1', '2', ... 'x'будучи версией 1, 2... x Вашего файла в рамках того ответвления.


Для представления снимка расширенный путь не доступен, таким образом, Ваш "взлом" является способом пойти.

Однако 2 комментария здесь:

  • для быстрого отображения всех предыдущих изменений файла снимка в данном ответвлении можно ввести:

(одна версия строки для вставки копии, синтаксиса Unix:)

cleartool find addon.xml -ver 'brtype(aBranch) && !version(.../aBranch/LATEST) && ! version(.../aBranch/0)' -exec 'cleartool diff -ser empty "$CLEARCASE_XPN"'

(многострочная версия для удобочитаемости:)

cleartool find addon.xml -ver 'brtype(aBranch) && 
                               !version(.../aBranch/LATEST) && 
                               ! version(.../aBranch/0)' 
          -exec 'cleartool diff -ser empty "$CLEARCASE_XPN"'
  • у Вас может быстро быть вывод, немного более любезный с

(одна версия строки для вставки копии, синтаксиса Unix:)

cleartool find addon.xml -ver 'brtype(aBranch) && !version(.../aBranch/LATEST) && ! version(.../aBranch/0)' -exec 'cleartool diff -ser empty "$CLEARCASE_XPN"' | ccperl -nle '$a=$_; $b = $a; $b =~ s/^>+\s(?:file\s+\d+:\s+)?//g;print $b if $a =~/^>/'

(многострочная версия для удобочитаемости:)

cleartool find addon.xml -ver 'brtype(aBranch) && 
                               !version(.../aBranch/LATEST) && 
                               ! version(.../aBranch/0)' 
         -exec 'cleartool diff -ser empty "$CLEARCASE_XPN"'
| ccperl -nle '$a=$_; $b = $a; 
               $b =~ s/^>+\s(?:file\s+\d+:\s+)?//g;
               print $b if $a =~/^>/'

Тем путем вывод более хорош.


"cleartool get"управляйте (страница справочника) упомянутый ниже Brian не делает stdout:

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

На UNIX или системе Linux, копии /dev/hello_world/foo.c@@/main/2 в текущий каталог.

cmd-context get –to foo.c.temp /dev/hello_world/foo.c@@/main/2

В системе Windows, копии \dev\hello_world\foo.c@@\main\2 в C:\build каталог.

cmd-context get –to C:\build\foo.c.temp \dev\hello_world\foo.c@@\main\2

Таким образом, возможно, чем, путем передачи по каналу результата к a cat (или type в окнах), можно затем сделать что-то с выводом сказанных cat (type) команда.

cmd-context get –to C:\build\foo.c.temp \dev\hello_world\foo.c@@\main\2 | type C:\build\foo.c.temp 
7
задан Alan Moore 27 July 2009 в 04:10
поделиться

3 ответа

Вот один из способов решения этой проблемы, который более эффективен, чем метод грубой силы.

  • загрузить все имена в ассоциативный массив с ключом, равным имени, и значением, равным имя, но без цифр ( preg_replace ('/ \ d // g', $ key) ).

У вас будет что-то вроде $ arr1 = [Birthday001 => Birthday, Birthday002 = > День рождения ...]

  • теперь создайте еще один ассоциативный массив с ключами, которые являются значениями из первого массива, и значением, которое является счетчиком. Увеличьте счетчик, когда вы уже видели ключ.
  • в конечном итоге вы получите второй массив, содержащий имена и счетчики, как вы и хотели. Что-то вроде $ arr2 = [Birthday => 2, ...]
6
ответ дан 7 December 2019 в 05:26
поделиться

Просто создайте гистограмму, ключи которой изменяются с помощью регулярного выражения:

<?php

# input
$filenames = array("Birthday001.jpg", "Birthday002.jpg", "Birthday003.jpg", "Picknic1.jpg", "Picknic2.jpg", "Afternoon.jpg");

# create histogram
$histogram = array();
foreach ($filenames as $filename) {
    $name = preg_replace('/\d+\.[^.]*$/', '', $filename);
    if (isset($histogram[$name])) {
        $histogram[$name]++;
    } else {
        $histogram[$name] = 1;
    }
}

# output
foreach ($histogram as $name => $count) {
    if ($count == 1) {
        echo "$name ($count picture)\n";
    } else {
        echo "$name ($count pictures)\n";
    }
}

?>
2
ответ дан 7 December 2019 в 05:26
поделиться

Сгенерируйте массив слов вроде «мой» (разработка этого массива будет очень важна, «мой» - единственный в вашем примере) и удалите их из всех имен файлов. Уберите все цифры и знаки препинания, также на этом этапе не должно быть расширений. Как только это будет сделано, поместите все уникальные результаты в массив. Затем вы можете использовать это как довольно надежный источник ключевых слов для поиска отставших, которых не удалось уловить другой обработкой.

0
ответ дан 7 December 2019 в 05:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: