Segue uma possibilidade:
$ cat exemplo.txt
asterion 9058 2.3 2.3 31820 12060 ? Sl 19:10 0:00 smplayer
asterion 9062 3.0 2.3 31840 12052 ? Sl 19:10 0:00 smplayer
$ while read LINHA; do echo "$((++i)) $LINHA"; done < exemplo.txt
1 asterion 9058 2.3 2.3 31820 12060 ? Sl 19:10 0:00 smplayer
2 asterion 9062 3.0 2.3 31840 12052 ? Sl 19:10 0:00 smplayer
A variável i assumiu o valor zero automaticamente porque eu não defini
um valor para ela. Usei pré-incremento (++i) e não pós-incremento
(i++) como você fez, para que a numeração começasse do um e não do
zero.
Saudações,
Guilherme Magalhães Gall
2008/8/14 Leonardo Bernardes <[EMAIL PROTECTED]>:
> ## Envio novamente pois, pelo costume, não enviei o email em plain
> text e imagino que ele não chegará até o grupo
>
> Boa noite, amigos
>
> Tenho uma dúvida, talvez até simples, vou ilustrá-la com um exemplo.
> Se eu tenho os seguintes dados de saída:
>
> $ ps aux |grep smplayer
> asterion 9058 2.3 2.3 31820 12060 ? Sl 19:10 0:00 smplayer
> asterion 9062 3.0 2.3 31840 12052 ? Sl 19:10 0:00 smplayer
> $ ps aux |grep smplayer > guardar.txt
>
> Os dados contidos nesse arquivo guardar.txt, se eu quiser imprimi-los
> na tela, enumerando cada uma das linhas, qual é a melhor opção? Mas
> vejam, eu não quero algo como cat -n, gostaria de poder manipular a
> forma como os números são exibidos. Eu descobri uma forma, mas
> considero ela uma tanto complexa, vejam:
>
> ct=1
> mat=$(cat guardar.txt |wc -l)
> while [ $ct -le $mat ]; do
> echo -e "($ct): $(cat guardar.txt |awk 'NR == '$ct' { print $0 }')"
> ((ct++))
> done
>
> Eu queria aprender a fazer via "for", aí entra outra dúvida, se eu uso
> algo como:
>
> for linha in $(cat guardar.txt) # ele retorna cada termo como um
> parâmetros posicional "asterion" "9058" ... e assim por diante
> se eu uso assim:
> for linha in "$(cat guardar.txt)" # ele retornar o bloco inteiro como
> um único parâmetro e também não adianta
>
> O "for" serve pra fazer isso que eu quero? é possível fazê-lo imprimir
> uma linha de cada vez? Qual é a maneira mais simples de fazer isso?
>
> Desde já agradeço
>
>
> Leonardo Bernardes
> Usuário Linux # 444329
> brausen.blogspot.com
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> 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
>
>
>