Я пытаюсь просмотреть множество старых исходных файлов 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
, и игнорировать строки с только совпадениями в комментариях?