Mover caracteres para o final da linha (EOL) com SED

0

Sempre que a palavra "The" aparecer no início de uma linha, quero movê-la para o final da linha e capitalizar a nova primeira palavra na linha. Por exemplo, “o céu” se torna “o céu”. Estou tentando testar isso para a minha biblioteca.

    
por 에이바 13.09.2010 / 17:48

2 respostas

3

Isso deve funcionar:

sed 's/^The \(.*\)/\u the/'
    
por 13.09.2010 / 18:17
2

Caso seu sed não tenha \u :

awk '$1 ~ "^The" {the=tolower($1); $1=""; char=toupper(substr($0,2,1)); rest=substr($0,3); print char rest, the}' inputfile

Atribuir um nulo a $ deixa o separador de campo (um espaço) no lugar. O primeiro substr() começa no caractere 2 para pular esse espaço. A vírgula próxima ao final imprime o OFS (separador de campos de saída que tem como padrão um espaço).

    
por 13.09.2010 / 19:19