Я новичок в 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
Спасибо chriserin