shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Imprimindo linhas enumeradas


From: Raul Libório
Subject: Re: [shell-script] Imprimindo linhas enumeradas
Date: Fri, 15 Aug 2008 08:16:22 -0300

Não sei se entendi bem mas um 'cat arquivo.txt | nl ' consegue
enumerar as linhas.
--

Raul Libório
UniJorge Redes - www.redesfja.com
rauhmarutsªhotmailºcom
Linux user#4444581
[(55) 71] 9246 9828

Dúvidas: enviar para /dev/null
Respondei assim que possível.



2008/8/15 Guilherme Gall <address@hidden>:
> 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
>>
>>
>>
> 


reply via email to

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