shell

https://til.hashrocket.com/posts/9zneks2cbv-multiline-matches-with-ripgrep-rg

$ echo 'apple\norange\nbanana\nkiwi' | rg 'orange.*kiwi'

マッチしない

$ echo 'apple\norange\nbanana\nkiwi' | rg --multiline 'orange.*kiwi'

マッチしない .\n にマッチしないため。

dot all modifier = (?s) をつかう

$ echo 'apple\norange\nbanana\nkiwi' | rg --multiline '(?s)orange.*kiwi'
orange
banana
kiwi

マッチする

--multiline-dotall でもよい

$ echo 'apple\norange\nbanana\nkiwi' | rg --multiline --multiline-dotall 'orange.*kiwi'
orange
banana
kiwi