gpt4 book ai didi

bash - grep 字符串,包括正斜杠作为单词的一部分

转载 作者:行者123 更新时间:2023-12-04 16:04:15 25 4
gpt4 key购买 nike

如何将/作为word和grep精确匹配的一部分?

$ echo "aa/bb/cc dd/ee/ff" | grep -w aa/bb
aa/bb/cc dd/ee/ff
$

我想让grep把整个字符串无一异常(exception)地匹配到/。在上面的示例中,我不希望它匹配 aa/bb/cc 字符串,而是仅在有任何 aa/bb

时才匹配

预期产出:

$ echo "aa/bb/cc dd/ee/ff" | grep <options??> aa/bb
$ <empty>
$ echo "aa/bb dd/ee/ff" | grep <options??> aa/bb
aa/bb dd/ee/ff
$ echo "kk/ll aa/bb dd/ee/ff" | grep <options??> aa/bb
kk/ll aa/bb dd/ee/ff
$ echo "kk/ll dd/ee/ff aa/bb" | grep <options??> aa/bb
kk/ll dd/ee/ff aa/bb
$ echo "kk/ll dd/ee/ff aa/bb/cc" | grep <options??> aa/bb
$ <empty>
$ echo "kk/ll dd/ee/ff a-aa/bb" | grep <options??> aa/bb
$ <empty>

最佳答案

grep方法:

echo "aa/bb/cc aa/bb dd/ee/ff" | grep -P '(?:^|\s)aa/bb(?=\s|$)'
aa/bb/cc aa/bb dd/ee/ff

echo "aa/bb/cc aa/bb dd/ee/ff" | grep -P '(?:^|\s)aa/bb(?=\s|$)'
<empty>

  • -P - perl 正则表达式
  • (?:^|\s)aa/bb(?=\s|$):
    • (?:^|\s) - 非捕获组,交替组匹配字符串 ^ 或空白字符 \s 的开头
    • aa/bb - 按字面匹配 aa/bb 序列
    • (?=\s|$) - 前瞻肯定断言包含交替组以匹配空白字符 \s 或字符串结尾 $

关于bash - grep 字符串,包括正斜杠作为单词的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49369046/

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