【问题标题】:Git Diff and Grep a list of strings outGit Diff 和 Grep 输出字符串列表
【发布时间】:2020-04-30 21:13:47
【问题描述】:

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

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

【问题讨论】:

    标签: git grep cut git-diff


    【解决方案1】:

    您可以使用cut command 分解您的路径:

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

    在 Mac 上,试试:

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

    【讨论】:

    • 在 mac 上,您必须使用短参数名称 -d 和 -f。
    • git diff --name-only origin/master | cut -d/ -f3 | uniq 帮助消除欺骗
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 2021-07-10
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多