gpt4 book ai didi

regex - 使用 egrep 在 bash 中查找被空格包围的行中的字符

转载 作者:行者123 更新时间:2023-11-29 09:21:33 24 4
gpt4 key购买 nike

我有一个看起来像这样的文件:

Arjun
A
A
A
sdsdA
AA
AAA

我想找到包含 A 的行,A 的两边都被空白包围。因此,所需的输出为:

   A
A

只有第 3 行和第 4 行应该出现在输出中。我尝试了以下操作:

egrep '(^|\s)A($|\s)' filename

并在输出中得到这个:

A
A
A

它也以某种方式匹配以单独的 A 开头的第二行。我该如何避免这种情况?

最佳答案

假设您在第 2 和第 3 行“A”行的任一侧都有一个实际空格,并且不以 A 结尾,那么这些中的任何一个都应该可以工作,使用 grep 或 egrep,只匹配一个空格字符,A,空格字符:

grep " A " filename
grep ' A ' filename

或者使用字符类:

grep '[[:space:]]A[[:space:]]' filename

但是 [[:space:]] 类也许应该也匹配所有“空白”(制表符、换行符、垂直制表符、换页、回车和空格)根据 GNU.org's grep manual , 但它似乎与我的 grep (GNU grep) 2.16 的换行符不匹配,除非 A 然后行尾不是换行符。

显然 GNU.org tells me ‘\s’ 匹配空格,它是 [[:space:]]

的同义词

所以这个带有 [[:blank:]] 的应该只匹配空格或制表符:

grep '[[:blank:]]A[[:blank:]]' filename

关于regex - 使用 egrep 在 bash 中查找被空格包围的行中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27923335/

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