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 deinputfile
parastdin
-
-r
: permite o uso de regexes estendidos -
> out
: redireciona o conteúdo destdout
paraout
Divisão do comando # 2 :
-
< inputfile
: redireciona o conteúdo deinputfile
parastdin
-
> out
: redireciona o conteúdo destdout
paraout
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