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

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

RES: [shell-script] renomear arquivos


From: Julio Cezar Neves - DISB.O
Subject: RES: [shell-script] renomear arquivos
Date: Tue, 24 Oct 2000 17:42:02 -0300

Henrique, não vou nem responder só pra ver o "show de sed" que o Aurélio
Jargas (o rei do expressão regular) vai dar :o).

Acho o > barato analisar as "reg exp" rebuscadas que ele usa.

[]s,
Julio

-----Mensagem original-----
De: Henrique Limaverde Cabral de Lima [mailto:address@hidden]
Enviada em: terça-feira, 24 de outubro de 2000 17:23
Para: address@hidden
Assunto: [shell-script] renomear arquivos


Oi turma,
   estou querendo renomear arquivos de forma que:
+ espacos em branco sejam removidos e
+ cada palavra do nome seja escrita com a primeira letra maiuscula e as
  demais em minusculo

Por ex:

TUDO MAIUSCULO.txt
tudo minusculo.txt
tUDo dOiDo.txt
varias VARIAS varias palaVRAS.txt

Deve ficar:

TudoMaiusculo.txt
TudoMinusculo.txt
TudoDoido.txt
VariasVariasVariasPalavras.txt

Para isso, a ideia eh ler a entrada do ls e gerar um arquivo que contem um
comando mv para cada arquivo. Na verdade eu consegui fazer com awk. Nao vi
uma maneira de faze-lo em sed. Estou pedindo sugestoes (sed, awk, etc) 
pois acho que pode existir uma maneira mais elegante...

Eis o codigo:

-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-
ls -d *.txt | awk '
BEGIN {
   FS="\\ "
   OFS=""
}
{
   printf "mv \"%s\" ", $0
   for (i=1; i<NF; i++) {
      prim=substr($i,1,1)
      resto=substr($i,2)
      $i=toupper(prim) tolower(resto)
   }
   printf "\"%s\"\n", $0
}' > temp$$
-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-x-

   Obrigado

            Henrique Lima
---------------------------------------------------------------------




Inscrição:     address@hidden

Sair da lista: address@hidden

Banco Dados:   http://www.egroups.com/group/shell-script

From (no email address) Tue Oct 24 12:51:32 2000
Return-Path: <address@hidden>
X-Sender: address@hidden
X-Apparently-To: address@hidden
Received: (EGP: mail-6_1_0); 24 Oct 2000 19:51:30 -0000
Received: (qmail 23843 invoked from network); 24 Oct 2000 19:51:29 -0000
Received: from unknown (10.1.10.27) by m2.onelist.org with QMQP; 24 Oct 2000 
19:51:29 -0000
Received: from unknown (HELO burns.conectiva) (200.250.58.146) by mta2 with 
SMTP; 24 Oct 2000 19:51:28 -0000
Received: (qmail 24527 invoked from network); 24 Oct 2000 19:48:21 -0000
Received: from verde.distro.conectiva (10.0.17.77) by burns.conectiva with 
SMTP; 24 Oct 2000 19:48:21 -0000
Date: Tue, 24 Oct 2000 17:54:10 -0200 (BRST)
X-Sender: aurelio@verde.distro.conectiva
To: address@hidden
Subject: Re: RES: [shell-script] Leia o man
In-Reply-To: <4B813DAFDA55F14EA92BFABB590081A85DA5F6@wtrjo081>
Message-ID: <Pine.LNX.4.21.0010241739280.942-100000@verde.distro.conectiva>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=iso-8859-1
Content-Transfer-Encoding: 8BIT
From: # aurelio marinho jargas <address@hidden>

oi julio,

tudo na paz, obrigado.

@ 24/10, Julio Cezar Neves - DISB.O:
> Grande Aurélio,
> tudo em paz amigo? Quem sou eu para vetar o man? Costumo dizer no 1o. minuto
> da 1a. aula dos cursos de Programação Shell que leciono, que o único cara
> que conhece *tudo* de Shell, é o man. Foi por ele que aprendi Shell, já que
> por trabalhar com Unix SVR4, não tenho acesso às outras ajudas que vc citou.

o info é legal (agora que tem um navegador decente).
mas vários pacotes estão descontinuando a página de manual e
investindo apenas no info, por poder dividir o documento em
tópicos... é uma pena...



> Acho que alguma vezes o "leia o man" é inevitável. P. ex., um colega
> iniciante que quisesse informações sobre o comando test, com certeza iria
> apanhar bastante para descobrir a sua localização dentro do man e não creio
> que nenhum de nós teria a paciência que o man tem, de esmiuçar cada uma das
> dezenas de opções deste comando. Neste caso, acho que a melhor resposta
> seria: "faça man sh e no prompt tecle /test".

bem, no caso específico do test, aqui funciona o "man test".
achar alguma coisa no meio do "man bash" nem sempre funciona &:)
aliás, essa é a única página de manual que acesso constantemente
que eu ainda não li inteira. ali tem muuuuuuuita coisa massa.


> Para finalizar - esta vai direta para o Aurélio - o que estou pedindo é:
> sed '1,$s/man xxx/o xxx funciona assim:/g' &:)

se o endereçaento do s/// não for especificado, ele pega todas as
linhas, então o '1,$' pode ser omitido &;)

eu sei julio, concordo com sua opinião, naquele outro email eu
quis mostrar situações onde o "man xxx" ajuda e talvez o sed
acima pudesse ser omitido &:)

bem,
nada a ver com scripts, mas tudo a ver com o assunto, assino a
lista gringa do vim (editor de texto clone do vi) e lá o mais
comum é "digite :help bla".

o help do vim é sempre BEM detalhado, cheio de exemplos e com
navegação. nesse caso é _sempre_ aconselhável que quem está
começando o leia, pois você começa procurando uma coisa, e acha
mais umas 10 interessantes.

mas, se quiser saber mais a respeito "man vim" &;)

--
s·:(·>(·×^a]×http://www.verde666.org×^[:wq




reply via email to

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