shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Nome próprio - Mudar de minúscula p/ maiúscula


From: Julio C. Neves
Subject: Re: [shell-script] Nome próprio - Mudar de minúscula p/ maiúscula
Date: Tue, 19 Jan 2010 12:44:18 -0200

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 <address@hidden>

>
>
> 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: address@hidden <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]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]