Usando o GNU sed (padrão do Ubuntu) (graças ao pabouk para a sugestão da opção -r ):
< inputfile sed -r 's/^(.*)\^/\U\E/' > out
Usando perl (graças a Oli pelo regex abreviado):
< inputfile perl -pe 's/^(.*)\^/\U\E/' > out
Resumo do comando # 1 :
-
< inputfile: redireciona o conteúdo deinputfileparastdin -
-r: permite o uso de regexes estendidos -
> out: redireciona o conteúdo destdoutparaout
Divisão do comando # 2 :
-
< inputfile: redireciona o conteúdo deinputfileparastdin -
> out: redireciona o conteúdo destdoutparaout
Divisão do Regex :
-
s: realiza uma substituição -
/: inicia o regex -
^: corresponde ao início da linha -
(: inicia o primeiro grupo de captura -
.*: corresponde a qualquer número de caracteres -
): pára o primeiro grupo de captura -
\^: corresponde a um caractere^ -
/: pára a regex / inicia a substituição -
\U: inicia a conversão para maiúsculas -
: substitui pelo primeiro grupo de captura -
\E: para de converter para maiúsculas -
/: interrompe a substituição
