Допустим, у меня есть текстовый файл с экспортированным списком имен файлов (например, файлы, которые были созданы слишком давно или слишком велики). Список довольно большой (более 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:
Вы можете выбрать либо весь файл, либо фрагмент, либо отдельные строки. Инструмент может помочь выбрать каталоги, которые затем станут группировками.