Рейтинг:0

Инструмент для разделения дерева на группы поддеревьев

флаг tn

Допустим, у меня есть текстовый файл с экспортированным списком имен файлов (например, файлы, которые были созданы слишком давно или слишком велики). Список довольно большой (более 100 тысяч файлов).У меня нет прямого доступа файловой системы к файлам (например, они находятся в кластере). Примерный список будет таким:

/кластер/команда-1/файл001
/кластер/команда-1/файл002
/кластер/команда-1/файл003
/кластер/команда-2/подгруппа-А/дамп
/cluster/team-2/subteam-B/exportlist.txt
/кластер/команда-3/2021/11/05/дамп
/кластер/команда-3/2021/04/11/dump
/кластер/команда-3/2021/10/30/дамп
/кластер/команда-3/2021/09/30/дамп
/кластер/команда-4/проект-фу/х
/кластер/команда-4/проект-фу/у
/кластер/команда-4/проект-foo/z
/кластер/команда-4/проект-бар/я
/кластер/команда-4/проект-бар/j
/кластер/команда-4/проект-бар/к

Я хотел бы создать список префиксов, которые создают логическую группировку этих файлов. Кажется, в этом дереве есть какая-то структура, но, вероятно, ничего, что можно было бы разумно автоматизировать. Из приведенного выше примера группировка будет

/кластер/команда-1/*
/кластер/команда-2/подгруппа-А/*
/кластер/команда-2/подгруппа-B/*
/кластер/команда-3/*
/кластер/команда-4/проект-фу/*
/кластер/команда-4/проект-бар/*

С таким списком групп я могу затем заняться каждой группой отдельно (например, проверить эти файлы или обратиться к команде, которой принадлежат эти файлы).

Какой инструмент вы бы использовали для создания такого сопоставления?

Что я пробовал до сих пор:

  • вим -- требуется много специальных макросов/поисков для удаления файлов, находящихся в одной группе. Он может выполнять работу, но не кажется правильным инструментом
  • фзф -- fzf позволяет выбрать несколько файлов/каталогов для вывода на печать, имеет нечеткий поиск. Это хорошо подходит, если вы ищете что-то, а не выбираете группировку
  • грубый -- отлично подходит для изучения древовидной структуры. Однако он не позволяет читать список записей из текстового файла, а не из файловой системы.

В идеале должен быть инструмент, похожий на интерактивный выбор коммита mercurial:

Скриншот hg commit -i

Вы можете выбрать либо весь файл, либо фрагмент, либо отдельные строки. Инструмент может помочь выбрать каталоги, которые затем станут группировками.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.