我对 ripgreb 很陌生,但对它印象深刻。
我有一个非常特殊的触发案例,我想知道是否可以完成
假设我有两个降价文件
...
## 5.9 Subheading
plz, plz, plz do NOT find me!
# 6 Heading
## 6.1 subheading
plz, plz, plz FIND me!
## 6.2 subheading
plz, plz, plz do NOT find me!
...
和
...
## 6.1 subheading
plz, plz, plz FIND me too!
## 6.2 subheading
plz, plz, plz do NOT find me too!
...
是否可以在每行超过一个逗号的行## 6.1
内搜索?## 6.2
所以它显示了这样的东西
$rg <magic-search term>
221 plz, plz, plz FIND me!
256 plz, plz, plz FIND me too!
目前我只是这样做看看
rg '## 6.1' --before-context 0 --after-context 4
但这不会在 '## 6.1' 之后搜索多个逗号或将搜索限制在之后
更新
我找到了ripgrep的“解决方案”并将其放在这里:
$rg '## 6.1.*## 6.2' --multiline --multiline-dotall
220 ## 6.1 subheading
221 plz, plz, plz FIND me!
222 ## 6.2 subheading
255 ## 6.1 subheading
256 plz, plz, plz FIND me too!
257 ## 6.2 subheading
目前它还打印出标题(## 6.1
和## 6.2
)
试图通过做这样的事情来避免这种情况,但这只是首先删除它#
而不是整行
$rg '(?:(?!## 6.1).)*## 6.2' --multiline --multiline-dotall --pcre2
220 # 6.1 subheading
221 plz, plz, plz FIND me!
222 ## 6.2 subheading
255 # 6.1 subheading
256 plz, plz, plz FIND me too!
257 ## 6.2 subheading