как показать сводку списка файлов, сгруппированных по каталогу - PullRequest
0 голосов
/ 19 января 2019

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

Например, я хочу посмотреть, какие каталоги были изменены git commit или git diff влияет.

Вывод git diff --name-only или git show --name-only выводит что-то вроде:

foo/1.txt
foo/2.txt
bar/3.txt
bar/4.txt

но резюме по каталогу будет показывать:

foo/
bar/

1 Ответ

0 голосов
/ 19 января 2019

Передайте список файлов в perl, затем извлеките первые N частей имени файла.(Этот бит предполагает, что все элементы имеют как минимум эту глубину!)

Затем распечатайте извлеченный текст, если он еще не был просмотрен.

Например:

git show --name-only SHA | perl -n -e 'my ($root) = m[^((\w+/){DEPTH})]; print $root . "\n" if !exists $seen{$root}   ; $seen{$root} = 1;'

где DEPTH заменяется глубиной каталогов для рассмотрения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...