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

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

Re: [shell-script] Problema com Leitura de Arquivo |while read e cut -c


From: Marcos Notari Junior
Subject: Re: [shell-script] Problema com Leitura de Arquivo |while read e cut -c
Date: Fri, 4 Jan 2008 16:21:15 -0200

O problema é que o trecho é

101448      2126166983121220078881,24   20122007

e nao

101448 2126166983121220078881,24 20122007

O problema está no captura do comando cut

em vez de pegar:
101448      2126166983121220078881,24   20122007
ele pega como se fosse:
101448 2126166983121220078881,24 20122007

e não é essa ação que eu esperava.

Att.

Marcos

Em 04/01/08, Flavio Junior <address@hidden> escreveu:
>
>   Da uma adaptada ai pq eu acho q os numeros de caracter tão errado..
>
> mas veja:
>
> [root@muttley ~]# cat x
> 101448 2126166983121220078881,24 20122007
> 101448 2126166983121220078881,24 20122007
> 101448 2126166983121220078881,24 20122007
> 101448 2126166983121220078881,24 20122007
> [root@muttley ~]# while read LINHA; do DADO1=${LINHA:0:10};
> DADO2=${LINHA:11:10}; DADO3=${LINHA:21:8}; DADO4=${LINHA:29:10}; echo
> 1: $DADO1 - 2: $DADO2 - 3: $DADO3 - 4: $DADO4; done < x
> 1: 101448 212 - 2: 1669831212 - 3: 20078881 - 4: ,24 201220
> 1: 101448 212 - 2: 1669831212 - 3: 20078881 - 4: ,24 201220
> 1: 101448 212 - 2: 1669831212 - 3: 20078881 - 4: ,24 201220
> 1: 101448 212 - 2: 1669831212 - 3: 20078881 - 4: ,24 201220
>
> Sorte,
>
> --
>
> Flávio do Carmo Júnior
>
>
> On Jan 4, 2008 4:00 PM, Marcos Notari Junior 
> <address@hidden<marcosnj%40ig.com.br>>
> wrote:
> >
> >
> >
> >
> >
> >
> > Caros,
> >
> > Fiz um script conforme abaixo:
> >
> > ##############################################
> > cat arquivo.txt | while read i
> > do
> > DADO1=$(echo $i| cut -c 1-10)
> > DADO2=$(echo $i| cut -c 11-21)
> > DADO3=$(echo $i| cut -c 22-30)
> > DADO4=$(echo $i| cut -c 31-41)
> >
> > echo "INICIO"
> > echo "$DADO1"
> > echo "$DADO2"
> > echo "$DADO3"
> > echo "$DADO4"
> > echo
> > echo "$i"
> >
> > :
> > done
> > ##############################################
> >
> > Estou tentando pegar o conjunto de caracteres de cada linha.
> >
> > o Arquivo que estou carregando contem o seguinte layout:
> >
> > 101448 2126166983121220078881,24 20122007
> > 101448 2126166983121220078881,24 20122007
> > 101448 2126166983121220078881,24 20122007
> > 101448 2126166983121220078881,24 20122007
> >
> > Ou seja, preciso que as variaveis peguem: 10 caracteres, 10 caracteres,
> 8
> > caracteres e 10 caracteres, inclusive os espaços em branco.
> >
> > quando Executo deveria vir
> > INICIO
> > "101448 "
> > "2126166983"
> > "12122007"
> > "8881,24 "
> > "101448 2126166983121220078881,24 20122007"
> >
> > Porém, a execução apresenta:
> > INICIO
> > "101448 21"
> > "2616698312"
> > "12200788"
> > "81,24 20122"
> > "101448 2126166983121220078881,24 20122007"
> >
> > Alguem sabe o porque está ocorrendo isso ?
> >
> > Quando uso o awk tb ocorre.
> >
> > '{$1 = substr($1,1,23); print }'
> > '{$1 = substr($1,13,23); print }'
> >
> > Esses caracteres em branco tem um significado nesse arquivo, e preciso
> > manter para a saida das variáveis.
> >
> > Se alguem souber, agradeço.
> >
> > Marcos Notari Junior
> >
> > [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]