Obrigado Tiago,
testei inclusive com
for x in minha lista "de opções" ; do ...
e fez 3 vezes!
Completamente esclarecido :)
Alain
Tiago Barcellos Peczenyj escreveu:
> quando vc faz
>
> for x in "minha lista de opções" ; do ...
>
> vc tem uma unica opção que, por acaso, tem espaços em branco, p
Olá Alain,
Creio que a diferença seria na variável IFS, que provavelmente está
configurada para que o delimitador de campos seja e .
Se vc fizer:
IFS='
o delimitador padrão passará a ser somente o .
Com isso os resultados ficariam iguais.
Espero ter ajudado ;)
Gabriel Pere
quando vc faz
for x in "minha lista de opções" ; do ...
vc tem uma unica opção que, por acaso, tem espaços em branco, pois vc
protegeu essa frase colocando-a entre aspas duplas. Se vc quer fazer
algo para cada palavra dessa frase tente assim:
for x in minha lista de opções ; do ...
On Dec 18, 2
Este pequeno exemplo de uso do for dá dois resultados diferentes. Onde
está o erro?
#!/bin/bash
for VAR in "a1 b2"; do
echo $VAR
done
echo "--"
LISTA="a1 b2"
for VAR in $LISTA; do
echo $VAR
done
a1 b2
--
a1
b2
O correto me parece que seria ter sempre o loop executado duas vezes,
m seus anexos sÿo de responsabilidade
de seu auto=
r.
[As partes desta mensagem que não continham texto foram removidas]
__ Informação do NOD32 IMON 2730 (20071218) __
Esta mensagem foi verificada pelo NOD32 sistema antivírus
http://www.eset.com.br
__
Valeu, Flávio,
Funcionou. Muito obrigado.
Paulo
Em 18/12/07, Flavio Junior <[EMAIL PROTECTED]> escreveu:
>
> E só pra não dizer que sua ideia tava errada...
> Só faltou vc tratar o IFS ..
>
> Veja, usando exatamente sua ideia:
>
> [EMAIL PROTECTED]:~/test]# ls
> Banco de Dados A.txt Banco de D
E só pra não dizer que sua ideia tava errada...
Só faltou vc tratar o IFS ..
Veja, usando exatamente sua ideia:
[EMAIL PROTECTED]:~/test]# ls
Banco de Dados A.txt Banco de Dados B.txt Banco de Dados C.txt
Banco de Dados D.txt Banco de Dados E.txt
[EMAIL PROTECTED]:~/test]# OLDIFS=$IFS
[EMAIL P
Uma das formas.. bonita eu considero:
# Listando os arquivos, que eu acho que eh o seu padrao
[EMAIL PROTECTED]:~/test]# ls
Banco de Dados A.txt Banco de Dados b.txt Banco de Dados c.txt
Banco de Dados d.txt Banco de Dados e.txt
# Executando o script com o "echo" so pra eu ver se nao fiz cagad
Alan,
Lá vai:
for file in *
do
mv "$file" $(sed 's/Banco de Dados //g' <<< $file)
done
Paulo
Em 18/12/07, Alan Diones <[EMAIL PROTECTED]> escreveu:
>
> me informa como vc tá fazendo
>
>
> - Original Message -
> From: Paulo Soares Drumond
> To: shell-script@yahoogrupos.com.br
> > > Tentei mv arquivo* $(ls /diretorio/pasta/arquivo* | sed 's/)
> > >
> > > A resposta do prompt e que existe mas não é diretório.
> > >
> > > Qual é o truque?
> > >
> > >
> > > EdgardCosta
> > &
Julio,
Estou tentando renomear arquivos aqui e a cadeia de caracteres que eu quero
suprimir tem espaços em branco. Eu tinha feito um comando igual ao debaixo e
não obtive sucesso.
Vi que o exemplo do Edgard usa underscore em lugar de espaço. Há algum
truque para o meu caso?
Obrigado,
Paulo
Em
Fala Flavio !!!
Perfeito o comando. Justamente o que eu estava precisando. Estava tentando algo
com o cut, mas ai vc escreveu, eu testei e deu certinho. Vou estudar o awk para
verificar outras possibilidades.
Muito obrigado !
Abraço
João Luis
- Original Message -
From: Flavio J
Testa isso:
# awk -F: '{print $1" - "$5}' /etc/passwd
$1 = user
$5 = comentario
--
Flávio do Carmo Júnior
On Dec 18, 2007 12:39 PM, Suporte Técnico - DEPIN
<[EMAIL PROTECTED]> wrote:
>
>
>
>
>
>
> Boa tarde a todos.
>
> Estou precisando da saida de algo assim:
>
> - quando faço cat/etc/pas
Boa tarde a todos.
Estou precisando da saida de algo assim:
- quando faço cat/etc/passwd | grep "users", ele me lista
usuario:x:1106:507:comentario:/home/usuario:/bin/false
mas eu necessito de apenas os campos usuario e comentario.
estou quebrando a cabeça por aqui, se alguem puder ajudar ag
> Flávio do Carmo Júnior
> > > >
> > > > On Dec 18, 2007 10:32 AM, Leonardo D'Angelo Goncalves
> > > >
> > > > <[EMAIL PROTECTED]> wrote:
> > > > >
> > > > >
> > > > >
> > > >
Alan,
basicamente eh uma alteracao do codigo que o Flavio mandou, para ao
inves de contar, somar os valores.
Primeiro passamos a saida do comando ls -la para ser tratada pelo awk.
Em awk, normalmente temos um bloco do tipo CONDICAO { ACAO }.
O awk irá ler a entrada, linha por linha, e para cada
Hahaha..
Desculpa a minha "gafe" ... Nem me liguei no "somar" ..
Outra alternativa, pra me recuperar:
# awk '$5 != "" {print $5}' <(ls -la) | paste -sd+
4096+4096+19+10236+425+753+110+1024+99+10591+3342+2411+1460+673311+860191+844205+673973+2405448+2164+7086+18975+0+10479+991740+12288+69132679+49+
Leonardo,
Ok. Mas se vc estah querendo calcular o espaço ocupado em disco, use o
comando du.
Se não for isso que você quer esqueça o meu comentário.
Luiz Claudio.
--- Em shell-script@yahoogrupos.com.br, Alan Diones <[EMAIL PROTECTED]>
escreveu
>
> Arthur, gostei da idéia, me explica passo a pass
Valeu pessoal, muito obrigado preciso aprender awk urgente heheh
Em 18/12/07, Arthur Renato Mello <[EMAIL PROTECTED]> escreveu:
>
> Leonardo,
>
> ls -la | awk 'BEGIN{total=0}; {total+=$5; print $5}; END{print "Total:",
> total}'
>
> []s
> Arthur
>
> On Dec 18, 2007 10:42 AM, Leonardo D'A
Arthur, gostei da idéia, me explica passo a passo como funciona, tem
jeito?
ls -la | awk 'BEGIN{total=0}; {total+=$5; print $5}; END{print "Total:",
total}'
Alan Diones
Em Ter, 2007-12-18 às 10:52 -0200, Arthur Renato Mello escreveu:
> Leonardo,
>
> ls -la | awk 'BEGIN{total=0}; {total+=$5; print
Leonardo,
ls -la | awk 'BEGIN{total=0}; {total+=$5; print $5}; END{print "Total:", total}'
[]s
Arthur
On Dec 18, 2007 10:42 AM, Leonardo D'Angelo Goncalves
<[EMAIL PROTECTED]> wrote:
>
>
>
>
>
>
> tá mais eu quero somar e naum contar...hehe
>
> Em 18/12/07, Flavio Junior <[EMAIL PROTECTED]> esc
tá mais eu quero somar e naum contar...hehe
Em 18/12/07, Flavio Junior <[EMAIL PROTECTED]> escreveu:
>
> Com o proprio awk:
>
> $ ls -la | awk 'BEGIN{count=0}; {count++; print $5} END{ print "Total:",
> count}'
>
> mas pode fazer isso até com o wc -l mesmo..
>
> --
>
> Flávio do Carmo Júnior
>
>
Com o proprio awk:
$ ls -la | awk 'BEGIN{count=0}; {count++; print $5} END{ print "Total:", count}'
mas pode fazer isso até com o wc -l mesmo..
--
Flávio do Carmo Júnior
On Dec 18, 2007 10:32 AM, Leonardo D'Angelo Goncalves
<[EMAIL PROTECTED]> wrote:
>
>
>
>
>
>
> Bom dia
>
> Gostaria de sab
Bom dia
Gostaria de saber como somar a lista gerada por este comando, pois
tenho varias listas e gostaria de ter um total:
ls -la | awk '{print $5}' > lista.txt
Obrigado
Na verdade.. nesse caso o redirecionamento é desnecessário, pois o
grep já espera o nome do arquivo, ou seja:
$ grep "linha 2" texto.txt
Ao rapaz que abriu a thread, que eu já nem sei mais quem é..
Quando dizemos que um comando vai ler da stdin (entrada padrão), quer
dizer que um fluxo pode ser
obrigado pelo esclarecimento, desculpem minha confusão.
amigos, evitem utilizarem "|" pipe, o exemplo abaixo poderia ter
resolvido assim:
grep "linha 2" < texto.txt
o shell trabalha melhor assim.
Alan Diones
Em Ter, 2007-12-18 às 00:04 -0200, Arthur Renato Mello escreveu:
> Andre,
>
> "se [caminho do texto o qual será pesquisado] não for especificado,
27 matches
Mail list logo