我有以下问题:我想计算每个目录的迁移文件数。
我的结构总是这样的:
/some/path/app1/migrations/0001_hello_world.py
/some/path/app2/migrations/0001_foo.py
/some/path/app2/migrations/0002_bar.py
我需要的是一个 shell 脚本,在最好的情况下是一个单行脚本以获得以下结果:
app1: 1
app2: 2
所以我得到每个应用程序目录的文件数量。
我得到了我的文件列表:
git diff --color --name-only --diff-filter=A origin/develop my-branch | grep "\/migrations\/[0-9]"
我可以计算所有这些匹配项,wc -l
但无法计算每个目录。
不幸的是,即使有了谷歌和堆栈,我也被困住了。
关于该主题有什么想法吗?
答案1
尝试,
git diff --color --name-only --diff-filter=A origin/develop my-branch \
| grep '/migrations/[0-9]' \
| cut -d/ -f4 \
| sort \
| uniq -c
根据需要调整cut
(此处:)的字段编号。4
输出:
2 app1
1 app2
答案2
这将起作用:
$ for folder in *; do echo "$folder: "; \
find ./$folder -type f | wc -l; done | grep -A 1 "some/path/"`