如何编写一个在第三行中拾取特定单词的grep?

时间:2016-12-16 14:32:55

标签: git grep changelog

例如,如果我有这3行的文档。我知道^feat与第一个feat匹配,我如何匹配第三行reg?我试过^reg似乎不起作用。

feat(ad): make new ad
some note here
reg(ad): need a walk through

它意味着在https://github.com/rafinskipg/git-changelog

.changelogrc文件中使用

2 个答案:

答案 0 :(得分:1)

您可以尝试使用以下正则表达式:

^[^\r\n]*?\r\?\n[^\r\n]*?\r\?\nreg

这个正则表达式将从头开始“吃掉”两行,然后检查reg是否出现在第三行的开头。请注意,我使用数量\n|\r\n来表示换行符,以涵盖Windows或Linux(您从未提及过您的操作系统)。

如果您想匹配以reg开头的任何行,那么您可以尝试:

^(?:[^\r\n]*?\r\?\n)*reg

答案 1 :(得分:1)

查看该工具的来源,您应该启用调试日志记录,以查看使用this.log('debug', 'Executing : ', git_log_command);记录的已发布的git命令。通过快速查看来源,我会说你得到git log --grep="^feat|^reg"这样的东西不正确但应该是git log --grep="^feat\|^reg"。但无论如何,如果您有日志行,您可以尝试执行独立命令以查看它是否适合您,并且可以使用它来查找原因,如果没有。