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: Mon, 7 Jan 2008 11:32:49 -0200

Pessoal,

Funcionou aqui. Muito obrigado !!!

Abraços,

Marcos

Em 05/01/08, Julio C. Neves <address@hidden> escreveu:
>
>   Em 04/01/08, Marcos Notari Junior <address@hidden<marcosnj%40ig.com.br>>
> escreveu:
>
> >
> > 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"
> >
>
> 12345678901234567890123456789012345678901
> Para que isso acontecesse, os cortes deveriam ser feitos da seguinte forma
> (repare que escrevi uma régua acima para medir os cortes):
> DADO1=$(echo $i| cut -c 1-7)
> DADO2=$(echo $i| cut -c 8-17)
> DADO3=$(echo $i| cut -c 18-25)
> DADO4=$(echo $i| cut -c 26-32)
>
> Porém ficaria muito mais rápido se vc usasse .a sintaxe DADO1=${i:0:7}
>
> Abraços,
> Julio
>
> 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]
> >
> >
> >
>
> --
> Abraços,
> Julio
>
> [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]