[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RES: [shell-script] Colocar arquivos em colunas
From: |
Julio Cezar Neves - DATAPREVRJ |
Subject: |
RES: [shell-script] Colocar arquivos em colunas |
Date: |
Fri, 28 Mar 2003 08:53:33 -0300 |
i=2
cat arquivo | while read linha; do
echo "$linha" | cut -f`expr $i - 1`-$i -d"," | tr "," " "
i=`expr $i + 2`
done
[ ]s,
Julio Cezar Neves
-Eu Apoio o Software Livre-
-I Support Free Software-
* +55 21 2528-7070 / 9853-4044
*address@hidden
Carlo Eduardo, aí vai uma solução sem teste nem otimização. Dá uma ligada
pra mim, preciso falar com vc.
cat arquivo | while read linha; do
i=2
pedaco=x
while [ $pedaco ]; do
pedaco=`echo "$linha" | cut -f$(expr $i - 1)-$i -d","`
echo "$pedaco" | tr "," " "
i=`expr $i + 2`
done
done
[ ]s,
Julio Cezar Neves
-Eu Apoio o Software Livre-
-I Support Free Software-
* +55 21 2528-7070 / 9853-4044
*address@hidden
> -----Mensagem original-----
> De: Eddy [mailto:address@hidden]
> Enviada em: quinta-feira, 27 de março de 2003 14:39
> Para: address@hidden
> Assunto: [shell-script] Colocar arquivos em colunas
>
>
> Caros amigos boa tarde!
>
> Tenho uma dúvida que consegui resolver a algum tempo mas que
> me perdi em
> como se faz..
> tenho um arquivo (a,a1,b,b1,c,c1,d,d1) quero colocar assim...!!!!
> a a1
> b b1
> c c1
>
> Lembro que usei o tr para isso mas me perco em sintaxes.....
> Agradeço o help
>
> Sem mais,
>
> Carlos Eduardo Dionizio
> Analista de Suporte - UNIX
> Universidade Estácio de Sá - CPD
>
> Demolidor .."Padre eu luto pq não tenho medo"
> Padre.." Pena meu filho, pois um homem sem medo é um homem
> sem esperanças"
> (Filme - Demolidor)
> ----- Original Message -----
> From: "Julio Cezar Neves - DATAPREVRJ"
> <address@hidden>
> To: <address@hidden>
> Sent: Thursday, March 27, 2003 12:00 PM
> Subject: RES: [shell-script] CSV Parsing
>
>
> > Olá Dorneles,
> > vc pode matar 2 coelhos com uma só cajadada fazendo:
> >
> > OldIFS="$IFS"
> > IFS=";"
> >
> > while read campo1 campo2 campo3
> > do
> > echo "$campo1---$campo2---$campo3"
> > done < $1
> >
> > Para ficar + legível poré menos otimizado, vc poderia fazer
> a leitura
> assim:
> >
> > cat $1 |
> > while read campo1 campo2 campo3
> > do
> > echo "$campo1---$campo2---$campo3"
> > done
> >
> > Como vc deve saber o while é executado enquanto o cmd que o
> segue - neste
> > caso o read - seja bem sucedido, assim sendo, quando o cmd
> ler um EOF, o
> seu
> > código de retorno ($?) será != 0, saindo assim do loop. Veja só
> >
> > Prompt> read lixo < /dev/null
> > Prompt> echo $?
> > 1
> >
> > Neste exemplo o /dev/null manda, de cara, um EOF para o read. Quando
> listei
> > o código de retorno, ele estava = 1, desta forma
> demonstrando o que falei
> no
> > parágrafo anterior.
> > [ ]s,
> > Julio Cezar Neves
> > -Eu Apoio o Software Livre-
> > -I Support Free Software-
> > * +55 21 2528-7070 / 9853-4044
> > *address@hidden
> >
> >
> > > -----Mensagem original-----
> > > De: Dorneles Treméa [mailto:address@hidden]
> > > Enviada em: quarta-feira, 26 de março de 2003 22:58
> > > Para: address@hidden
> > > Assunto: [shell-script] CSV Parsing
> > >
> > >
> > > Olá pessoal,
> > >
> > > preciso de uma luz... :-)
> > >
> > > Estou iniciando um script que vai parsear um
> > > arquivo CSV, na verdade separado por ";", e
> > > executar algums comandos dependendo do conteúdo.
> > >
> > > O arquivo é composto por várias linhas no formato:
> > >
> > > campo1;campo2;campo3;campoN
> > >
> > > Eu estou tentando usar o $IFS para separar as
> > > linhas e depois as colunas, mas ainda não tive
> > > sucesso.
> > >
> > > Primeiro problema: pegar linha a linha do arquivo.
> > >
> > > ----------------------
> > >
> > > old_IFS="$IFS"
> > > IFS="\012"
> > >
> > > for linha in `cat $1` ; do
> > > echo $linha
> > > done
> > >
> > > IFS="$old_IFS"
> > >
> > > ----------------------
> > >
> > > Isso deveria mostrar cada uma das linhas certo?
> > > Mas não mostra... (devo estar errando em algo)
> > >
> > > A minha ideia é pegar cada uma das linhas e passar
> > > para uma função.
> > >
> > > Segundo teste: passar a linha para uma função
> > > que quebre os campos.
> > >
> > > ----------------------
> > >
> > > processa() {
> > > /path/to/comando $1 $3
> > > }
> > >
> > > for linha in `cat $1` ; do
> > > processa $linha
> > > done
> > >
> > > ----------------------
> > >
> > > Onde eu chamo um comando usando apenas alguns dos
> > > campos passados.
> > >
> > > Deve ser simples, mas eu devo ter perdido o cérebro
> > > essa semana em algum lugar... ;-)
> > >
> > > Valeu.
> > >
> > > T+
> > >
> > > --
> > >
> > > Dorneles Treméa
> > > Caxias do Sul - RS - Brasil
> > > +55 54 9114 9312 - UIN: 2413568
> > > X3ng Web Technology <http://www.x3ng.com.br>
> > >
> > > -----BEGIN GEEK CODE BLOCK-----
> > > Version: 3.12
> > > GCS/IT d- s:->: a23 C+++ UBL++++$ P--- L++ E-- W+++
> > > N++ o? K? w+ O M+ V-- PS+ PE- Y-- PGP++ t+ 5 X++ R+
> > > tv+ b(++) DI+ D++ G+>+++ e++>++++ h---- r+++ y+++**
> > > ------END GEEK CODE BLOCK------
> > >
> > >
> > >
> > > [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.listasdiscussao.cjb.net
> >
> ---------------------------------------------------------------------
> >
> >
> > Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> > http://br.yahoo.com/info/utos.html
> >
> >
> >
> >
> ---------------------------------------------------------------------
> > 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.listasdiscussao.cjb.net
> >
> ---------------------------------------------------------------------
> >
> >
> > Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> http://br.yahoo.com/info/utos.html
> >
>
>
>
> ---------------------------------------------------------------------
> 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.listasdiscussao.cjb.net
---------------------------------------------------------------------
Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- RES: [shell-script] Colocar arquivos em colunas,
Julio Cezar Neves - DATAPREVRJ <=