Это простая задача на поверхности, но очень сложная проблема для обработки всех краевых случаев. Простое решение легко реализуется в sed:
sed -e 'sX// *\(.*[^ ]\) *$X/* \1 */X' < oldfile > newfile
Вы можете настроить это по мере необходимости: у меня есть все пробелы в начале и конце комментария.
Что не обрабатывается, так это комментарии нового стиля со встроенными комментариями старого стиля (как уже отмечали другие). Что действительно портит, так это строки с двойной косой чертой в них - это не комментарии, но без разбора строк они будут модифицированы, как если бы они были. Проверьте для тех:
egrep '//.*/[*]|".*//' oldfile
Если вы нажмете любую из них, они потребуют ручной корректировки. Любая попытка автоматизировать его без фактического анализа файла просто создаст новые и более запутанные граничные условия, хотя вы можете распознать шаблон для взлома, который достаточно хорош для вашей ситуации.