Это дешевый и веселый способ удаления комментариев, как вы показали, используя GNU awk для мультисимвольных RS:
$ awk -v RS='[*]/' -v ORS= '{sub("/[*].*","")}1' file
var=15
Он будет отбрасывать комментарии независимо от того, где они начинаются / останавливаютсякаждая строка:
$ cat file
here's some text /* here's a comment */ and more text /* bleh */and more /*
this is a multi
line with
ending here */ and more
var=20/*
and ending the comment */
/* commented */ var=15
$ awk -v RS='[*]/' -v ORS= '{sub("/[*].*","")} 1' file
here's some text and more text and more and more
var=20
var=15
Он просто не может идентифицировать строки, которые выглядят как начало / конец комментария внутри строк или других языковых конструкций.
Вы можете передать это по своему усмотрениюполучить значение var
.Если это не все, что вам нужно, тогда получите / используйте парсер для любого языка, на котором написан ваш закомментированный код, например, см. https://stackoverflow.com/a/13062682/1745001 для C / C ++.