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


Responder a