
Estou tentando remover comentários de um arquivo que pode estar em qualquer parte de uma linha e abranger várias linhas.
struct my_struct{
field1;
field2; /** comment 1
*/ field3;
/* comment 2 */
} struct_name;
eu preciso conseguir
struct my_struct{
field1;
field2;
field3;
} struct_name;
Eu tentei usar
grep -o '[^/*]*[^*/]'
para remover qualquer texto entre /* e */ correspondentes, mas está eliminando os símbolos de comentário, mas não o texto intermediário. Qual é a maneira correta? Se houver outra maneira de usar 'sed', seria bom saber disso também.
Responder1
Responder2
Se você deseja apenas remover qualquer coisa entre /*
e */
e ignorar todas as peculiaridades da linguagem C, como //
comentários no estilo C99, strings entre aspas e escapes de barra invertida de novas linhas, então um simples Perl-regex deve servir:
perl -0777 -pe 's,/\*.*?\*/,,gs' inputfile