Fala Daniel, Isso não vai resolver o teu problema especificamente, mas vale para mostrar para o pessoal as novidades do bash 4.0 que estou incorporando ao meu livro.
- ${parâmetro^} - ${parâmetro,} Essas expansões foram introduzidas a partir do Bash 4.0 e modificam a caixa das letras do texto que está sendo expandido. Quando usamos circunflexo (^), a expansão é feita para maiúsculas e quando usamos vírgula (,), a expansão é feita para minúsculas. Exemplo: *$ Nome="botelho"* *$ echo ${Nome^} * Botelho *$ echo ${Nome^^} * BOTELHO *$ Nome="botelho carvalho"* *$ echo ${Nome^} * *Botelho carvalho **Que pena...* Um fragmento de *script* que pode facilitar a sua vida: read -p "Deseja continuar (s/n)? " [[ ${REPLY^} == N ]] && exit Esta forma evita testarmos se a resposta dada foi um N (maiúsculo) ou um n (minúsculo). No *Windows*, além dos vírus e da instabilidade, também são frequentes nomes de arquivos com espaços em branco e quase todos em maiúsculas. No exemplo anterior, vimos como trocar os espaços em branco por sublinha (_), no próximo veremos como passá-los para minúsculas: *$ cat trocacase.sh* #!/bin/bash # Se o nome do arquivo tiver pelo menos uma #+ letra maiúscula, troca-a para minúscula for Arq in *[A-Z]* *Pelo menos 1 minúscula* do if [ -f "${Arq,,}" ] *Arq em minúsculas já existe?* then echo ${Arq,,} já existe else mv "$Arq" "${Arq,,}" fi done Abraços, Julio Cursos de Shell e Zenity em 2 fins de semana? - Em SP ligue (11)2125-4747; - Em DF ligue (61) 3223-3000; - Turmas fechadas em outras cidades ligue (21) 8112-9988. 2010/1/19 Daniel Merli Morais <dmerlimor...@gmail.com> > > > Pessoal, como converter apenas o primeiro caracter de cada palavra p/ > maiúsculo? Por exemplo, em um arquivo que contenha nomes próprios: > > João silva > Fulano ciclano > Maria oliveira > > Deveria ficar da seguinte forma: > > João Silva > Fulano Ciclano > Maria Oliveira > > Com o sed consigo localizar o padrão espaço+minúscula: / [a-z]/, porém não > consigo substituir a primeira letra após o espaço por sua correspondente em > maiúscula. Disse a primeira letra após o espaço porque a primeira letra de > cada linha já está em maiúscula no meu arquivo, então só precisaria me > preocupar com os sobrenomes. > > Obrigado desde já. > > -- > "A maior virtude do sábio é mostrar-se ignorante diante daquilo que > desconhece" > > Daniel Merli Morais > Enterprise Application Integration - Configuration Manager > Sprint / IBM Brasil > MSN: merli...@hotmail.com <merlipol%40hotmail.com> > LinkedIn: www.linkedin.com/in/dmerlimorais > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ --------------------------------------------------------------------- Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. --------------------------------------------------------------------- Sair da lista: shell-script-unsubscr...@yahoogrupos.com.br --------------------------------------------------------------------- Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net --------------------------------------------------------------------- Servidor Newsgroup da lista: news.gmane.org Grupo: gmane.org.user-groups.programming.shell.brazil Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: shell-script-unsubscr...@yahoogrupos.com.br <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html