git grep显示绝对路径

ddrv8njm  于 2022-12-10  发布在  Git
关注(0)|答案(2)|浏览(137)

我想在仓库外使用git grep,例如在vim中编辑一个文件。

git -C /path/to/gitrepo/ grep 'my search'

问题是结果显示的是/path/to/gitrepo的相对路径。所以,我不能直接打开它们。
有没有办法生成匹配的完整文件路径?从git可能很好,但是一个预先规划和构建绝对路径的hacky解决方案也可以。

cunj1qz1

cunj1qz11#

通常的输出是每个匹配只显示一行(尽管这取决于选项)。在这种情况下,一个简单的git -C $path grep pattern | sed s,^,$path,就可以完成这个任务(假设路径中没有“,”)。- torek

o2g1uqev

o2g1uqev2#

[alias]
        egrep = "!f1() { git grep --line-number \"$1\" | sed \"s,^,$PWD/,g\"  | sed \"s/^\\(.*:[0-9]\\{1,10\\}\\):/\\1 /g\" ; }; f1"

这是我的git别名配置。
用法:git egrep 'my search'。这会给予你一个包含完整路径和行号的文件名。

相关问题