gpt4 book ai didi

regex - grep regex忽略行尾的注释

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

我正在尝试通过大量旧的 PowerBASIC 源文件进行 grep 以搜索变量,但我无法获取 grep 以避免在末尾匹配对变量的引用-行评论。

例如:

ANGLE = 40    ' THIS IS A COMMENT ABOUT ANGLE'S VALUE
FOO = 3/ANGLE ' ANGLE CAN APPEAR ON RIGHT SIDE AS WELL
DELTA = 35 ' ANGLE AND DELTA AREN'T FRIENDS

最初我使用的是:

# grep "\bANGLE\b.*'" SRC_FILE.BAS

但是——除了忽略没有注释的行——它还会打印出根本不使用 ANGLE 的代码行(例如 DELTA 行) .这是因为这些行恰好在它们的注释(即 AREN'T)中也有一个撇号(')。

我想通过管道输出来删除我不想要的行:

# grep "\bANGLE\b" SRC_FILE.BAS | grep -v "'.*\bANGLE\b"

但不幸的是,它也删除了我确实想要的代码行,这些代码行恰好在他们的评论中有“ANGLE”。

如何让 grep 匹配涉及 ANGLE 的实际代码行并忽略那些在注释中匹配的行?

最佳答案

grep "^[^']*\bANGLE\b" SRC_FILE.BAS

这只匹配 ANGLE 左边的所有内容不包括 ' 的行。会出现类似jnylen's solution的问题如果字符串中有撇号。

关于regex - grep regex忽略行尾的注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16719105/

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