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

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

Re: [shell-script] for com espaço nos arquivos


From: Julio C. Neves
Subject: Re: [shell-script] for com espaço nos arquivos
Date: Mon, 19 Aug 2013 18:46:09 -0300

Fala Moa,
Olha só:
$ read a b c
aaa bbb ccc
$ echo $a
aaa
$ echo $b
bbb
$ echo $c
ccc
$ read a b
aaa bbb ccc
$ echo $a
aaa
$ echo $b
bbb ccc

Ou seja, quem está no fim, leva tudo...

Quando vc faz read linha, vc está passando somente uma variável e é ela que
está levando tudo! Agora veja:

$ read linha <<< "segundo arquivo maior e mais comprido"
$ echo $linha
segundo arquivo maior e mais comprido
$ read p1 p2 p3 p4  <<< "segundo arquivo maior e mais comprido"
$ for i in 1 2 3 4; { eval echo \$p$i; }
segundo
arquivo
maior
e mais comprido

Ou seja, parti a frase em p1, p2, p3 e p4, onde cada um levou uma palavra
(por causa do IFS) mas o p4 levou o resto.

Essa é a explicação desse comportamento.

Mais uma dica para todos: não é necessário usar o ls -1, o ls só já dá
conta do recado. Experimente e verá.

Abcs,
Julio
*@juliobash
*



Em 19 de agosto de 2013 18:04, Moacir Souza <address@hidden>escreveu:

> **
>
>
> Hum,
>
> Se considerar os seguintes arquivos:
>
> moacir@ /home/moacir/teste $ ls -1
> primeiro arquivo
> segundo arquivo
> segundo arquivo maior
> segundo arquivo maior e mais comprido
>
> Você pode brincar com o named pipe (xodó do Julio :D)
>
> moacir@ /home/moacir/teste $ while read linha;do echo "[--$linha--]";done
> <
> <(ls -1)
> [--primeiro arquivo--]
> [--segundo arquivo--]
> [--segundo arquivo maior--]
> [--segundo arquivo maior e mais comprido--]
>
> Ou usar aquela forma mais conhecida do while read recebendo entradas
> via pipe
>
> moacir@ /home/moacir/teste $ ls -1 | while read linha;do echo
> "[--$linha--]";done
> [--primeiro arquivo--]
> [--segundo arquivo--]
> [--segundo arquivo maior--]
> [--segundo arquivo maior e mais comprido--]
>
> Eu ia falar do IFS também, mas o Nander já sapecou a dica =).
>
> []'s,
> M.
>
> 2013/8/19 Flavio Steimacher <address@hidden>
>
> > vc pode fazer assim:
> > for i in *; do echo "$i"; done
> >
> > abs
> >
> >
> > Em 19 de agosto de 2013 16:32, Thiago M. Figueiredo <
> > address@hidden> escreveu:
> >
> > > **
> > >
> > >
> > > Opa Galera,
> > >
> > > Estou tendo dificuldade em fazer um for com arquivos que tenham espaço
> no
> > > nome.
> > > Código:
> > > for i in `ls` ; do
> > > echo $i;
> > > done
> > >
> > > Os arquivos ou pasta que tem espaço ficam aparecendo como se fossem
> > vários
> > > arquivos.
> > > Ex:
> > > Área
> > > de
> > > Trabalho
> > >
> > > Alguém já passou por essa questão?
> > >
> > > Muito Obrigado e um grande abraço
> > > ------------------------------
> > > Thiago M. Figueiredo
> > > address@hidden
> > > Cel: (55 11)9472-5713
> > > address@hidden
> > > http://www.thiagofigueiredo.com
> > > Open Source o conhecimento é do mundo.
> > > Usar software proprietário R$ 450,00 com MasterCard, usar software
> > > livre não tem preço.... mas para todos os outros softwares existem os
> > > cracks. .
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> >
> >
> > --
> > Atenciosamente,
> >
> > Flavio Steimacher
> > *DBA Oracle
> > LPIC1 - Linux Professional Institute Certified
> > CLA - Novell Certified Linux Administrator
> > DCTS - Novell Data Center Technical Specialist*
> >
> >
> > [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: address@hidden
> > ----------------------------------------------------------
> > 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
> >
> >
> >
>
> --
> ==========================================
> Moacir da Cruz Souza Filho
>
> Analista de Sistemas: Suporte Unix Avançado
> Mestrando em Ciências da Computação
> Bacharel em Engenharia da Computação
> Técnico em Eletrônica
> Linux user #449600
> ==========================================
>
> [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]