gpt4 book ai didi

grep - 如何在 Grep 语句中包含可选空格

转载 作者:行者123 更新时间:2023-12-04 12:29:50 27 4
gpt4 key购买 nike

我有一些我正在搜索的日志文件,其中包含以下形式的条目

foo($abc) - sometext
foo ($xyz) - moretext
baz($qux) - moartext
我正在寻找使用 grep 将前两行作为匹配项输出,即
foo($abc)
foo ($xyz)
我试过下面的grep语句 grep 'foo(\$' log.txt它输出第一个匹配项,但我尝试包含一个可选的空格,但都没有返回: grep 'foo\s?(\$' log.txt我错误地使用了可选空间,但我不确定如何

最佳答案

您正在使用 POSIX BRE 正则表达式和 foo\s?(\$匹配 foo ,一个空格,一个 文字 ? , 文字 (和文字 $ .
您可以使用

grep -E 'foo\s?\(\$' log.txt
在这里, -E使模式 POSIX ERE,因此它现在匹配 foo ,然后是一个可选的空格和一个 ($子串。
看一个在线演示:
s='foo($abc) - sometext
foo ($xyz) - moretext
baz($qux) - moartext'
grep -E 'foo\s?\(\$' <<< "$s"
输出:
foo($abc) - sometext
foo ($xyz) - moretext
您仍然可以使用更通用的语法,例如
grep 'foo[[:space:]]\{0,1\}(\$' log.txt
它是一个 POSIX BRE 正则表达式匹配 foo , 一个或零个空格,然后是 ($子串。

关于grep - 如何在 Grep 语句中包含可选空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66314801/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com