-1

我找到了如何让 GNU grep 完全匹配“H”而不是仅以“H”开头的东西的解决方案?感谢 Kent 使用以下内容:

grep -o '\bH\b'|wc -l

但我需要支持正则表达式,所以像

grep -o '\bH*\b'|wc -l

应该匹配 Hello、Hi 等内容。支持所有正则表达式。

我认为 -e 选项可以做到这一点,但它不起作用。有人有想法么?

4

1 回答 1

1

尝试改变

grep -o '\bH*\b'|wc -l

进入

grep -oP '\bH.*?\b'|wc -l

你的H*意志匹配H HH HHH HHH or empty string

\bH.*?\b将匹配H Hi Hallo Hello H_x_均值,H后跟非单词边界字符,直到下一个\b

如果您只想匹配字母,请使用\bH[a-zA-Z]*\b

编辑

添加示例:

kent$  echo "H Hfoo Hbar xafHHH"|grep -Po '\bH.*?\b'
H
Hfoo
Hbar
于 2013-05-06T22:46:24.567 回答