Parece que você está usando o GNU sed
ou outra versão com a extensão \u
, portanto, é possível fazer isso:
sed -e '/gr-description/{n;s/\b./\u&/g;}' < test1
Isso combina linhas contendo gr-description
e, em seguida, executa tudo no {}
nesse ponto. n
vai para a próxima linha, imprimindo a que acabamos de comparar e, em seguida, o comando s
substitui todos os caracteres que seguem um limite de palavra ( \b
ou \<
) com sua versão de capa superior ( \u&
).
Isso faz tudo de uma só vez, sem canalizar um sed
para outro, o que não faria o que você queria - você estava apenas obtendo uma linha, em vez de editar o fluxo à medida que avança.