[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: |
Flavio Junior |
Subject: |
Re: [shell-script] Problema com Leitura de Arquivo |while read e cut -c |
Date: |
Fri, 4 Jan 2008 16:11:10 -0200 |
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> 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]
>
>