我试图通过许多旧的 PowerBASIC 源文件搜索变量,但我无法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
行并忽略那些仅在注释中匹配的行?