sed 's|//\(.*\)|/* */|'
Mas cuidado, há vários casos em que não faria a coisa certa, como em:
char *url = "http://host/";
/*
comment with // nested C++-syle comment
*/
// comment \
continued on the next line
Para contabilizar esses casos e mais, você pode adaptar o código em outros Q & A como:
perl -0777 -pe '
BEGIN{
$bs=qr{(?:\|\?\?/)};
$lc=qr{(?:$bs\n|$bs\r\n?)}
}
s{
/$lc*\*.*?\*$lc*/
| /$lc*/((?:$lc|[^\r\n])*)
| "(?:$bs$lc*.|.)*?"
| '\''$lc*(?:$bs$lc*(?:\?\?.|.))?(?:\?\?.|.)*?'\''
| \?\?'\''
| .[^'\''"/?]*
}{defined($1)?"/*$1 */":$&}exsg'
Qual no exemplo acima dá:
char *url = "http://host/";
/*
comment with // nested C++-syle comment
*/
/* comment \
continued on the next line */