Você tem de colocar aspas no seu echo i, assim:
echo "$i"

Pode também tentar com shell apenas:

while read i;do
DADO1=${i:0:10}
DADO2=${i:10:10}
DADO3=${i:20:10}
DADO4=${i:30:10}

echo "INICIO"
echo "$DADO1"
echo "$DADO2"
echo "$DADO3"
echo "$DADO4"
echo
echo "$i"
:
done<arquivo.txt


Obs.:
não testei nem um nem outro, mas deve te ajudar a matar a charada.
No shell o primeiro caracter está na posição zero e não um.
O segundo número que aparece é o comprimento da string desejada.




---------------------------------------------------------------------
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: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil

 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/shell-script/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 

Responder a