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: Julio C. Neves
Subject: Re: [shell-script] Problema com Leitura de Arquivo |while read e cut -c
Date: Sat, 5 Jan 2008 03:28:28 -0200

Em 04/01/08, Marcos Notari Junior <address@hidden> 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]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]