Я пытаюсь grep через множество старых исходных файлов PowerBASIC в поисках переменной, но у меня возникают проблемы с получением grep
, чтобы избежать совпадения ссылок на переменную в конце комментарии.grep regex игнорировать комментарий в конце строки
Например:
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
и игнорировать эти строки с только совпадения в комментариях?
Я даже не думал о буквальных строках кода. Хороший улов! –