對於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