使用 ripgrep 搜索 start/end 个单词
search start/end of word with ripgrep
使用 grep
我可以使用
搜索单词的开头和结尾
grep -e '\<leg\>' <where to search>
这会找到 I have a leg.
但不会找到 play allegro here
。
Ripgrep (0.10.0) 好像不支持这种正则表达式的写法。因此我的问题是:
如何 "grep" 出现在带有 ripgrep
的单词的 begin/end 处?
ripgrep 不支持 \<
和 \>
单词边界,它们分别只匹配单词的开头和结尾。然而,ripgrep 确实支持 \b
,它匹配任何地方的单词边界。在这种情况下,对于您的具体示例来说已经足够了:
$ echo 'play allegro here' | rg '\bleg\b'
$ echo 'I have a leg.' | rg '\bleg\b'
I have a leg.
ripgrep 还支持 grep 的 -w
标志,在这种情况下它有效地做同样的事情:
$ echo 'play allegro here' | rg -w leg
$ echo 'I have a leg.' | rg -w leg
I have a leg.
使用 grep
我可以使用
grep -e '\<leg\>' <where to search>
这会找到 I have a leg.
但不会找到 play allegro here
。
Ripgrep (0.10.0) 好像不支持这种正则表达式的写法。因此我的问题是:
如何 "grep" 出现在带有 ripgrep
的单词的 begin/end 处?
ripgrep 不支持 \<
和 \>
单词边界,它们分别只匹配单词的开头和结尾。然而,ripgrep 确实支持 \b
,它匹配任何地方的单词边界。在这种情况下,对于您的具体示例来说已经足够了:
$ echo 'play allegro here' | rg '\bleg\b'
$ echo 'I have a leg.' | rg '\bleg\b'
I have a leg.
ripgrep 还支持 grep 的 -w
标志,在这种情况下它有效地做同样的事情:
$ echo 'play allegro here' | rg -w leg
$ echo 'I have a leg.' | rg -w leg
I have a leg.