Git Diff 和 Grep 字符串列表

Git Diff and Grep a list of strings out

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

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 如果它有助于缩小我系统上的范围)

你可以用cut command分解你的路径:

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

在 Mac 上,尝试:

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