[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Exibição da barra invertida
From: |
Luis Fernando C. Talora |
Subject: |
Re: Exibição da barra invertida |
Date: |
Thu, 13 Oct 2005 15:46:30 -0000 |
User-agent: |
eGroups-EW/0.82 |
Caro Tiago,
Tentei sua sugestão, mas não certo... Aí descobri o
problema: o comando "read" trata a barra invertida
como um caractere de escape por padrão. Para suprimir
esse comportamento, bastou usar "read -r",
ficando assim:
-------------------------------------------
(...)
while read -r DATA HORA TAM NOME ; do
(...)
done < $1
-------------------------------------------
Isso resolveu o problema.
Obrigado pela ajuda!
[]´s
Luís Talora
--- Em address@hidden, Tiago Barcellos Peczenyj
<tiago.peczenyj@g...> escreveu
> faça:
>
> DATA=${DATA//\\\\/\/}
>
> ele vai trocar todos os \ por / -- ${var//texto/novo} Substitui
> 'texto' por 'novo', sempre
>
> agora eu não sei por que tem que colocar 4 \ pra funcionar...
>
> Em 13/10/05, Luis Fernando C. Talora<talora-listas@t...> escreveu:
> > Pessoal,
> >
> > Fiz um script para ler um arquivo gerado via DOS, com o seguinte
> > formato:
> >
> > ----------------------------------------------
> > Directory of D:\network\usu\fulano
> > 11/10/05 13:21 356.254.300 porcarias.pst
> > 11/10/05 13:21 200.001.200 besteiras.pst
> > Directory of D:\network\usu\ciclano
> > 11/10/05 13:21 128.006.222 lix.pst
> > Directory of D:\network\usu\fulano
> > 11/10/05 13:21 256.003.565 asneiras.pst
> > 11/10/05 13:21 1.306.245 nhacas.pst
> > ----------------------------------------------
> >
> > Eis o Script:
> >
> > ----------------------------------------------
> > #!/bin/bash
> > while read DATA HORA TAM NOME ; do
> > # echo "DATA=$DATA HORA=$HORA TAM=$TAM NOME=$NOME DIR=$DIR"
> > if [ ${DATA:0:1} == "D" ] ; then
> > DIR=$TAM
> > else
> > echo "$DATA $HORA $TAM $NOME $DIR"
> > fi
> > done < $1
> > ----------------------------------------------
> >
> > O script funciona redondo, exceto pela exibição de $DIR. Por
> > exemplo:
> > ao invés de exibir "D:\network\usu\fulano", está sendo
exibido
> > "D:networkusufulano". A causa disso, com toda certeza, é o uso
> > reservado do caracter "\". Tentei até usar o "tr" para
converter
> > "\" em "/" mas, apesar de funcionar na linha de comando, no
> > script não deu certo.
> >
> > Alguém pode me dar uma dica de como exibir isso? Se não
houver
> > necessidade de substituir a barra invertida, melhor ainda.
> >
> > Obrigado mais uma vez!
> >
> > []´s
> >
> > Luís Talora
> >
> >
> >
> >
> > ----------------------------------------------
-----------------------
> > 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
> > ----------------------------------------------
-----------------------
> >
> >
> >
> >
> > Yahoo! Grupos, um serviço oferecido por:
> >
> > ________________________________
> > Links do Yahoo! Grupos
> >
> >
> > Para visitar o site do seu grupo na web, acesse:
> > http://br.groups.yahoo.com/group/shell-script/
> >
> > Para sair deste grupo, envie um e-mail para:
> > address@hidden
> >
> > O uso que você faz do Yahoo! Grupos está sujeito aos Termos
do
Serviço do
> > Yahoo!.