
Estoy intentando eliminar comentarios de un archivo que puede estar en cualquier parte de una línea y abarcar varias líneas.
struct my_struct{
field1;
field2; /** comment 1
*/ field3;
/* comment 2 */
} struct_name;
Necesito conseguir
struct my_struct{
field1;
field2;
field3;
} struct_name;
Intenté usar
grep -o '[^/*]*[^*/]'
para eliminar cualquier texto entre /* y */ coincidentes, pero elimina los símbolos de comentario pero no el texto intermedio. ¿Cuál es la manera correcta? Si hay otra forma de usar 'sed', sería bueno saberlo también.
Respuesta1
Respuesta2
Si solo desea eliminar cualquier cosa entre /*
y */
e ignorar todas las peculiaridades del lenguaje C, como //
los comentarios estilo C99, las cadenas entre comillas y las barras invertidas de las nuevas líneas, entonces una simple expresión regular en Perl debería ser suficiente:
perl -0777 -pe 's,/\*.*?\*/,,gs' inputfile