是否有可能更改git status
的输出,以便每个文件扩展名仅显示一行?例如,通过文件扩展名获得Git状态摘要
M *.java -> 12
D *.html -> 2
M *.md -> 1
我在Unix上,所以一些grep的魔法也可以。
是否有可能更改git status
的输出,以便每个文件扩展名仅显示一行?例如,通过文件扩展名获得Git状态摘要
M *.java -> 12
D *.html -> 2
M *.md -> 1
我在Unix上,所以一些grep的魔法也可以。
试试这个:
git status -s | awk '{print $2}' \
| sed -e 's/.*\(\.[a-zA-Z0-9]*\)$/\1/' \
| uniq -c
其中: awk '{print $2}'
- 匹配更新的文件 sed -e 's/.*\(\.[a-zA-Z0-9]*\)$/\1/'
- 提取文件扩展名 uniq -c
- calcalate算
我可以获得最初的标识符吗?例如,'M,A,D'(首行字母)。 – kerner1000
@ kerner1000:前两列有*两个*字母(然后是空格,然后是文件名)。第一个是比较HEAD和索引,第二个是比较索引和工作树。考虑你想要什么,例如,“AM”与“MM”。那么,你想要添加一个.html并修改几个以上的内容? – torek
嗯,我只有一个。 '$ git status -s M [..]。java' – kerner1000
你可以'git的状态| grep .java | echo“java”\'wc -l \''。当然这应该进行修改和改进,以便对所有类似的扩展进行分组,但也许是方向。 – Maroun
'git status --porcelain'并参见https://www.git-scm.com/docs/git-status#_short_format。 – ElpieKay