如何仅使用grep打印第一个匹配项

Yur*_*j73 15 shell grep regular-expression

我正在尝试 grep 用户名:

users | grep "^\b\w*\b" -P
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它只显示第一场比赛grep

ken*_*orb 43

要仅显示与 的第一个匹配项grep,请使用-m参数,例如:

grep -m1 pattern file
Run Code Online (Sandbox Code Playgroud)

-m num, --max-count=num

在 num 匹配后停止读取文件。


pet*_*rph 9

如果您真的只想返回第一个单词并且想要这样做grep并且您grep恰好是 GNU 的最新版本grep,那么您可能需要该-o选项。我相信你可以在没有-P\b开始时做到这一点并不是真正必要的。因此:users | grep -o "^\w*\b"

然而,正如@manatwork提到,壳牌内置readcut/ sed/awk似乎是更合适的(特别是一旦你到你需要做的事情更多了点)。