Ce script sed doit donc gérer les lignes blanches, les commentaires sur une ligne commençant pas '//', les commentaires sur plusieurs lignes (ou pas) du type /* comment */. Ca donne alors le script suivant :

#!/bin/sed -nf

# remove empty lines
/^$/d
# remove single line comments
/^\/\//d

# remove /* */ comments, multiline or not 
/\/\*/{
    :mline
    /\*\//b mlineend
    N
    b mline
    :mlineend
    d
}
p

Le seul passage qui me semble nécessiter une explication est celui qui gère les commentaires sur plusieurs lignes. Ce qui est fait là est assez simple (sisi c'est vrai) : on ne traite que les lignes comprenant '/*', si la ligne comprend aussi '*/' on passe à la balise mlineend, sinon on ajoute la ligne suivante aux lignes déjà lues et on passe à la balise mline (boucle). Le saut à la balise mlineend provoque la destruction des lignes lues et le passage à la ligne suivante en recommençant le script.
On finit par afficher la ligne (grâce à 'p') si aucun des cas précédents ne s'est produit.

Le défaut de ce script est de ne pas gérer les cas où les commentaires sont mixés avec du code. Je pense l'améliorer dans un deuxième temps pour prendre en compte ces cas.

Mise à jour: une nouvelle version de ce script règle ces soucis.