
한 줄의 어느 부분에나 여러 줄에 걸쳐 있을 수 있는 파일에서 주석을 제거하려고 합니다.
struct my_struct{
field1;
field2; /** comment 1
*/ field3;
/* comment 2 */
} struct_name;
나는 얻을 필요가있다
struct my_struct{
field1;
field2;
field3;
} struct_name;
나는 사용해 보았다.
grep -o '[^/*]*[^*/]'
일치하는 /*와 */ 사이의 텍스트를 제거하려면 주석 기호는 제거하지만 그 사이의 텍스트는 제거하지 않습니다. 올바른 방법은 무엇입니까? 만약 'sed'를 사용하는 다른 방법이 있다면 그것도 알아두면 좋을 것 같습니다.
답변1
답변2
/*
and 사이의 모든 항목을 제거하고 */
C99 스타일 //
주석, 인용 문자열 및 개행 문자의 백슬래시 이스케이프와 같은 C 언어의 모든 단점을 무시하려면 간단한 Perl-regex를 사용하면 됩니다.
perl -0777 -pe 's,/\*.*?\*/,,gs' inputfile