
한 줄의 어느 부분에나 여러 줄에 걸쳐 있을 수 있는 파일에서 주석을 제거하려고 합니다.
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
C99 스타일 주석, 인용 문자열, 개행 문자의 백슬래시 이스케이프 등 C 언어의 모든 단점을 무시하고 /*
사이에 있는 항목을 제거하려면 간단한 Perl-regex를 사용하면 됩니다.*/
//
perl -0777 -pe 's,/\*.*?\*/,,gs' inputfile