如何显示按目录分组的文件列表的摘要

时间:2019-01-19 14:45:09

标签: git perl

假设我有一个文件列表,并且想按目录汇总到一定深度。

例如,我想查看git提交已更改或git diff影响的目录。

git diff --name-onlygit show --name-only的输出列出如下内容:

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

但按目录的摘要将显示:

foo/
bar/

1 个答案:

答案 0 :(得分:2)

将文件列表放入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替换为要考虑的目录深度。