[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Problemas com a interpretação de "$"
From: |
Vinicius Xavier |
Subject: |
Re: [shell-script] Problemas com a interpretação de "$" |
Date: |
Thu, 4 Nov 2010 08:33:46 -0700 (PDT) |
Olá Paulo,
Fiz o comando igual ofr igual ao que vc postou, e deu certo.
~ $ echo $conteudo
4444 5555 6666 7777
~ $ for item in $conteudo ; do echo newtask_CMOST8o_Paulo_o$item.log; done
newtask_CMOST8o_Paulo_o4444.log
newtask_CMOST8o_Paulo_o5555.log
newtask_CMOST8o_Paulo_o6666.log
newtask_CMOST8o_Paulo_o7777.log
Pode passar mais detalhes? Pode dar um echo na variável e mostra como está?
Abs,
Vinícius Xavier
--- Em qui, 4/11/10, Paulo Soares Drumond <address@hidden> escreveu:
De: Paulo Soares Drumond <address@hidden>
Assunto: [shell-script] Problemas com a interpretação de "$"
Para: "Lista de discussão sobre Shell Script" <address@hidden>
Data: Quinta-feira, 4 de Novembro de 2010, 12:58
Olá,
Participo pouco da lista e hoje me deparei com um problema que deve
ter solução simples mas que não consegui resolver das maneiras que
tentei.
Tenho uma quantidade enorme de arquivos gigantescos num diretório e
preciso apagar a maioria deles. Filtrei aqueles que preciso manter e
agora precisarei apagar todos os demais e aí começou meu problema.
Os arquivos são nomeados da seguinte forma: newtask_CMOST80_Paulo_09999.XXX
sendo:
- 9999 um número entre 0 e 5446;
- XXX uma das seguintes extensões: log, dat, out, irf, mrf.
Coloquei na variável "conteudo" a lista dos números dos arquivos que
preciso manter, mas quando comecei a esboçar algo esbarrei no seguinte
problema:
for item in $conteudo; do echo newtask_CMOST80_Paulo_0$item.log; done
Eu esperava que ele retornasse algo como:
newtask_CMOST80_Paulo_09999.log
Mas ele retorna uma lista de strings mais ou menos assim:
.logask_CMOST80_Paulo_09999
onde 9999 é o número do arquivo.
Se eu substituo ".log" por ".*" ele faz a mesma substituição na saída.
Já tentei colocar o \, ", `, ', {} e nada resolveu o problema.
Pensando que o problema era do echo, alterei o comando para ls e o
mesmo aconteceu.
O que estaria faltando para que apareçam corretamente os nomes dos arquivos?
Paulo
http://homens-ibcc.blogspot.com
http://www.twitter.com/psdrumond
"E se o meu povo, que se chama pelo meu nome, se humilhar, e orar, e
buscar a minha face e se converter dos seus maus caminhos, então eu
ouvirei dos céus, e perdoarei os seus pecados, e sararei a sua terra."
(II Crônicas 7:14)
[As partes desta mensagem que não continham texto foram removidas]