首页 > 解决方案 > Git Diff 和 Grep 输出字符串列表

问题描述

如果我得到一个已更改的文件列表,我该如何拉出某个字符串并打印它?

git diff --name-only origin/master

输出:

server/packages/sharing/src/test1.js
client/packages/sharing/src/test2.js
client/packages/foo/src/test3.js
client/packages/foo/src/test4.js
client/packages/bar/src/test5.js
client/packages/bar/src/test6.js
client/packages/baz/src/test7.js
client/packages/baz/src/test8.js

在检查文件列表时,我想获得路径中的第三个单词。

试图得到:

sharing, foo, bar, baz

或者

sharing
foo
bar
baz

我试过git diff --name-only origin/master | grep -o '*/packages/*/src'了,但我不确定如何捕捉这个词。(在 Mac 上使用 zsh 如果它有助于缩小我的系统上的内容)

标签: gitgrepcutgit-diff

解决方案


您可以使用cut命令分解路径:

git diff --name-only origin/master | cut --delimiter / --fields 3

在 Mac 上,尝试:

git diff --name-only origin/master | cut -d/ -f3

推荐阅读