[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Imprimindo linhas enumeradas
From: |
Guilherme Gall |
Subject: |
Re: [shell-script] Imprimindo linhas enumeradas |
Date: |
Fri, 15 Aug 2008 00:44:59 -0300 |
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 <address@hidden>:
> ## 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: address@hidden
> ---------------------------------------------------------------------
> 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
>
>
>
- Imprimindo linhas enumeradas, Leonardo Bernardes, 2008/08/14
- Re: [shell-script] Imprimindo linhas enumeradas,
Guilherme Gall <=
- Re: [shell-script] Imprimindo linhas enumeradas, Raul Libório, 2008/08/15
- Re: [shell-script] Imprimindo linhas enumeradas, Flavio Junior, 2008/08/15
- Re: [shell-script] Imprimindo linhas enumeradas, Tiago Barcellos Peczenyj, 2008/08/15
- Re: [shell-script] Imprimindo linhas enumeradas, Leonardo Bernardes, 2008/08/15
- Re: [shell-script] Imprimindo linhas enumeradas, Raul Libório, 2008/08/15
- Re: [shell-script] Imprimindo linhas enumeradas, Leonardo Bernardes, 2008/08/15