对于segfault命令,它必须运行在一个包含文本文件的目录中。没有或组,它不会出现分段错误。为什么下面的grep命令会出错:grep -Pz“(。| n)*”*
回答
为什么以下grep命令段错误
因为在它的错误。
在用户应用程序的任何碰撞,如grep
,cp
,ls
等是错误在上述实用,你应该将其与一组重现它需要几个简单的步骤报告。
它看起来类似于另一个bug:编号为libpcre2
的“git grep
”有时会触发段错误。
而随着Git 2.16(Q1 2018),这个问题正在解决之中。
请参阅commit a25b908,commit ce9a257(2017年11月23日)作者Ævar Arnfjörð Bjarmason (avar
)。
(由Junio C Hamano -- gitster
--在commit b3f04e5合并,2017年12月13日)
grep
:固定下-P + PCRE2 <=10.30 + (*NO_JIT)
段错误修正的错误中的PCRE2模式下JIT(最常见的运行时配置)编译。用
(*NO_JIT)
动词的任何模式将 段错误在任何当前发布PCRE2版本:$ git grep -P '(*NO_JIT)hi.*there' Segmentation fault
那这个segfaulted是PCRE2本身就是一个错误,报告之后(“How am I supposed to use PCRE2 JIT in the face of (*NO_JIT) ?”)上
pcre-dev
,它被固定在一个尚未即将发布的PCRE版本(推测首先发布为10.31)。
现在就一起死:$ git grep -P '(*NO_JIT)hi.*there' fatal: pcre2_jit_match failed with error code -45: bad JIT option
但错误的原因是其历史可以追溯到我的 94da919(”
grep
:增加对PCRE V2" 支持我们自己的代码,2017年6月1日, Git 2.14-rc0)。正如评论在更详细地解释在这里被添加,它不是 足以只是检查
pcre2_config()
,看是否JIT应当 使用,pcre2_pattern_info()
也必须问。这是我在用传递给git的模式中的PCRE2 动词摆弄时发现的。我不希望git 的任何用户遇到这种情况,因为将PCRE2动词 传递给库,以及(* NO_JIT) 本身的相对默默无闻。
同样,这可能不是完全一样的错误,但你可能会考虑测试你的git grep
再度Git的2.16是版本,看看问题是否依然存在。
- 1. 为什么cygWin grep会给出错误?
- 2. grep命令错误
- 3. UNIX grep命令(grep的-v grep的)
- 4. 为什么我的grep命令在某些行之间输出“ - ”?
- 5. 这个grep命令有什么问题?
- 6. Grep命令
- 7. Unix grep命令
- 8. Grep sed命令
- 9. 在grep命令
- 10. UNIX grep命令
- 11. 如何在java中创建grep命令作为linux grep命令
- 12. Linux Shell - Grep命令
- 13. 为什么这个grep命令没有输出?
- 14. 最后第n行grep命令
- 15. grep命令行,linux
- 16. 的Unix grep命令
- 17. Hadoop的grep命令
- 18. grep命令匹配
- 19. 什么选项会使Grep命令从底部搜索?
- 20. 为什么multipl输出行为grep
- 21. Bash:从命令输出的grep模式
- 22. 多行grep命令(不是多行grep)
- 23. 关于grep命令
- 24. grep和sed命令
- 25. Grep命令搜索
- 26. grep命令窗口
- 27. grep命令从蟒
- 28. 获取“getprop | grep”shell命令的输出
- 29. 的CentOS:bash下的grep:找不到命令
- 30. grep的时间命令输出
正如手册页所说,'grep -P'是“高度实验性的”,所以YMMV和使用风险自负。我个人会避免它,因为作者明确警告瘟疫,但我看到其他人提倡它... –
你是否想要匹配的时期或“任何字符,但行终止符”?我的假设是,你正试图在句子末尾或换行符的某个时段进行匹配。在您的示例正则表达式中,句号将基本匹配所有内容,在句号与文本匹配的情况下,您需要使用反斜杠进行转义。 – user3661841
也许你的_grep_确实是一种病毒。 – sln