В Perl:
while(my $line = <>)
{
$line =~ s/^\}[ \t]*$/}\n/;
print $line;
}
Это также вставит что-то в конец каждого пространства имен (но не struct или class, так как в конце у них точка с запятой). Возможно, вы могли бы стать более умным, чтобы избежать этого, но я подозреваю, что это может быть излишним.
Это также заметно не будет перехватывать функции, которые определены inline в объявлении класса. Я не уверен, что в твоем случае это важно.