Я бы, наверное, очень универсален:
perl -i.bak -pe 's/^(\@param)(\s+)(\S+)(\s+)(\S+)/$1$2$5$4$3/'
или очень специфично:
perl -i.bak -pe 's/^(\@param)(\s+)(\$[_a-zA-Z]\w*)(\s+)(integer|long|char)(\s+)$/$1$2$5$4$3$6/'
в зависимости от данных. Следует обратить внимание на строковую интерполяцию идентификатора $ в оболочке и строковую интерполяцию @param
и $identifier
в Perl. Первый обрабатывается с помощью одинарных кавычек на оболочке (для предотвращения интерполяции), а второй обрабатывается путем экранирования @
и $
(или с использованием класса символов, который не требует явного соответствия $
).