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

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

Re: wc -l contando linhas errado?


From: andelnyr
Subject: Re: wc -l contando linhas errado?
Date: Thu, 07 Feb 2013 14:57:10 -0000
User-agent: eGroups-EW/0.82

Júlio

Nem tinha prestado atenção nessa facilidade, e acabo sempre contando as linhas 
de um arquivo e fazendo um awk '{print $1}' para pegar so o número, nos scripts 
que faço

Depois da sua mensagem me liguei no detalhe que vc citou, e testei

wc -l < arquivo

E também não vou precisar mais ficar cortanto a saída do comando para pegar so 
o que preciso.

Valeu a dica.



--- Em address@hidden, "Julio C. Neves"  escreveu
>
> Por favor execute a linha com cat -vet que postei e nos diga qual foi a
> saída. Seu arquivo deve ter algum caractere de controle.
> 
> Um macete: Se vc faz wc -l arq, te volta arq    nnn, ou seja, o próprio
> nome do arquivo e a qtd de linhas que ele tem. Para vc pegar a qtd de
> linhas, ainda terá de fazer um cut ou algo do gênero.
> 
> Qdo vc faz cat arq | wc -l o nome do arquivo é omitido pq os dados vêm da
> entrada primária (stdin). Veja:
> 
> $ wc -l foguete.sh
> 67 foguete.sh
> $ cat foguete.sh | wc -l
> 67
> 
> Abcs,
> Julio
> A partir de  01/04  lecionarei um
> curso completo de Shell em Recife
> Clique aqui 
> para mais  detalhes.
> @juliobash
> 
> 
> 
> 
> Em 6 de fevereiro de 2013 16:22, Alfredo Casanova
> escreveu:
> 
> > resolveu o problema, mas ainda não matou a curiosidade nesse trecho:
> >
> > $ wc -l 06_02_2013_11_17_33_CSV.CSV
> > 554 06_02_2013_11_17_33_CSV.CSV
> >
> > e o mais estranho:
> > se eu retirar as "linhas em branco", ele me dá uma linha a mais!
> >
> > $ cat 06_02_2013_11_17_33_CSV.CSV | grep -v ^$ | wc -l
> > 555
> >
> > $ cat 06_02_2013_11_17_33_CSV.CSV | grep  ^$ | wc -l
> > 0
> >
> >
> >
> > 2013/2/6 Tiago Peczenyj 
> >
> > > **
> > >
> > >
> > > O que importa é que resolve o seu problema. ;-)
> > >
> > > 2013/2/6 Alfredo Casanova atcasanova@...>
> > >
> > >
> > > > sei que poderia fazer de mil maneiras mais simples, mas aproveitei pra
> > > > aprender mais sobre o IFS, sempre tive dificuldades hehehe
> > > >
> > > >
> > > > 2013/2/6 Alfredo Casanova atcasanova@...>
> > > >
> > > > > Morreu
> > > > > é uma falha no sistema de onde esse CSV é extraído... eu usava dois
> > > > > determinados campos - que são mandatórios - para usar como índice, e
> > > em 3
> > > > > dessas linhas um desses campos aparece em branco.
> > > > >
> > > > > para descobrir o erro sem percorrer ele todo no "olhômetro", fiz o
> > > > > seguinte script:
> > > > >
> > > > > conta(){
> > > > > oIFS="$IFS"; IFS=, ; set -- $1 ; IFS="$oIFS"
> > > > > [ $# -ne 2 ] && echo "$i: faltando argumentos"
> > > > > }
> > > > >
> > > > > for i in $(cat 06_02_2013_11_17_33_CSV.CSV | cut -f9,4 -d, | cut -f1
> > > -d"
> > > > ")
> > > > > do
> > > > > conta $i
> > > > > done
> > > > >
> > > > > não me julguem! :)
> > > > >
> > > > >
> > > > >
> > > > > 2013/2/6 Tiago Peczenyj tiago.peczenyj@...>
> > > > >
> > > > >> **
> > >
> > > > >>
> > > > >>
> > > > >> Alfredo.
> > > > >>
> > > > >> faça isto:
> > > > >>
> > > > >> sed 's/\(...\).*/\1/' arquivo> novo
> > > > >>
> > > > >> e faça os testes com o novo. se continuar dando problema coloque
> > este
> > > > >> arquivo em um gist ou pastebin da vida.
> > > > >>
> > > > >> perceba que estou pegando apenas os 3 primeiros caracteres de cada
> > > > linha,
> > > > >> portanto o conteudo do arquivo não sera de conhecimento publico.
> > > > >>
> > > > >> 2013/2/6 Alfredo Casanova atcasanova@...>
> > > > >>
> > > > >>
> > > > >> > verifiquei tudo isso, não existe nenhum tipo de linha em branco...
> > > > >> > quando uso o nl ou o cat -n todas as linhas mostradas são de fato
> > > > >> linhas do
> > > > >> > arquivo
> > > > >> >
> > > > >> >
> > > > >> > 2013/2/6 Alysson Gonçalves de Azevedo agalysson@...>
> > > > >> >
> > > > >> > > **
> > > > >>
> > > > >> > >
> > > > >> > >
> > > > >> > > Me lembro vagamente de que o cat coloca um "enter" a mais no
> > final
> > > > do
> > > > >> > > arquivo.
> > > > >> > > Só não lembro onde li isso ou porque penso isso.
> > > > >> > >
> > > > >> > > Eu abriria esse arquivo num editor de texto e olharia qual
> > indice
> > > da
> > > > >> > última
> > > > >> > > linha (ou usaria o nl).
> > > > >> > > Se for 554, considere que o último enter é do cat e que está
> > sendo
> > > > >> > > contabilizado quando você joga a saída do arquivo pra algum
> > outro
> > > > >> > programa
> > > > >> > > via pipe.
> > > > >> > >
> > > > >> > > E se essa minha opnião tiver errada, por favor, corrija-me.
> > > > >> > >
> > > > >> > > Alysson Gonçalves de Azevedo - (11) 984 917 730
> > > > >> > >
> > > > >> > > "É curioso como as pessoas ficam confusas quando a frase não
> > > > terminam
> > > > >> do
> > > > >> > > jeito que elas periquito."
> > > > >> > >
> > > > >> > > Em 6 de fevereiro de 2013 14:25, Tiago Peczenyj
> > > > >> > > tiago.peczenyj@...>escreveu:
> > > > >> > >
> > > > >> > >
> > > > >> > > > Sem ver o arquivo não consigo imaginar o que houve.
> > > > >> > > >
> > > > >> > > > Agora eu imaginaria que tem um caracter \r em algum lugar.
> > > > >> > > >
> > > > >> > > > 2013/2/6 Alfredo Casanova atcasanova@...>
> > > > >> > > >
> > > > >> > > > > **
> > > > >> > > > >
> > > > >> > > > >
> > > > >> > > > > Seguinte, fiz um script que recebe um CSV, faz uns
> > > tratamentos e
> > > > >> gera
> > > > >> > > um
> > > > >> > > > > gráfico usando o google chart api em um html
> > > > >> > > > >
> > > > >> > > > > sempre funcionou certinho, mas hoje tive um probleminha
> > > > >> > > > > O sistema contabilizou 551 registros, mas deveria contar
> > 554,
> > > já
> > > > >> q o
> > > > >> > > > > arquivo tem 555 linhas e a primeira é descartada.
> > > > >> > > > >
> > > > >> > > > > Não consegui identificar o problema
> > > > >> > > > >
> > > > >> > > > > $ file 06_02_2013_11_17_33_CSV.CSV
> > > > >> > > > > 06_02_2013_11_17_33_CSV.CSV: UTF-8 Unicode text, with very
> > > long
> > > > >> lines
> > > > >> > > > >
> > > > >> > > > > $ cat -n 06_02_2013_11_17_33_CSV.CSV | tail -1 | cut -f1
> > > > >> > > > > 555
> > > > >> > > > >
> > > > >> > > > > $ wc -l 06_02_2013_11_17_33_CSV.CSV
> > > > >> > > > > 554 06_02_2013_11_17_33_CSV.CSV
> > > > >> > > > >
> > > > >> > > > > e o mais estranho:
> > > > >> > > > > se eu retirar as "linhas em branco", ele me dá uma linha a
> > > mais!
> > > > >> > > > >
> > > > >> > > > > $ cat 06_02_2013_11_17_33_CSV.CSV | grep -v ^$ | wc -l
> > > > >> > > > > 555
> > > > >> > > > >
> > > > >> > > > > $ cat 06_02_2013_11_17_33_CSV.CSV | grep ^$ | wc -l
> > > > >> > > > > 0
> > > > >> > > > >
> > > > >> > > > > alguém tem alguma ideia pra ajudar a rastrear o problema?
> > > > >> > > > >
> > > > >> > > > > --
> > > > >> > > > > []'s
> > > > >> > > > > Alfredo Casanova
> > > > >> > > > > Linux User #228230
> > > > >> > > > > msn: atcasanova@...
> > > > >> > > > > tel: +55 61 9655 9619
> > > > >> > > > >
> > > > >> > > > > [As partes desta mensagem que não continham texto foram
> > > > removidas]
> > > > >> > > > >
> > > > >> > > > >
> > > > >> > > > >
> > > > >> > > >
> > > > >> > > >
> > > > >> > > >
> > > > >> > > > --
> > > > >> > > > Tiago B. Peczenyj
> > > > >> > > > Linux User #405772
> > > > >> > > >
> > > > >> > > > http://about.me/peczenyj
> > > > >> > > >
> > > > >> > > >
> > > > >> > > > [As partes desta mensagem que não continham texto foram
> > > removidas]
> > > > >> > > >
> > > > >> > > >
> > > > >> > > >
> > > > >> > > > ------------------------------------
> > > > >> > > >
> > > > >> > > > ----------------------------------------------------------
> > > > >> > > > 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
> > > > >> > > >
> > > > >> > > >
> > > > >> > > >
> > > > >> > >
> > > > >> > > [As partes desta mensagem que não continham texto foram
> > removidas]
> > > > >> > >
> > > > >> > >
> > > > >> > >
> > > > >> >
> > > > >> >
> > > > >> >
> > > > >> > --
> > > > >> > []'s
> > > > >> > Alfredo Casanova
> > > > >> > Linux User #228230
> > > > >> > msn: atcasanova@...
> > > > >> > tel: +55 61 9655 9619
> > > > >> >
> > > > >> >
> > > > >> > [As partes desta mensagem que não continham texto foram removidas]
> > > > >> >
> > > > >> >
> > > > >> >
> > > > >> > ------------------------------------
> > > > >> >
> > > > >> > ----------------------------------------------------------
> > > > >> > 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
> > > > >> >
> > > > >> >
> > > > >> >
> > > > >>
> > > > >> --
> > > > >> Tiago B. Peczenyj
> > > > >> Linux User #405772
> > > > >>
> > > > >> http://about.me/peczenyj
> > > > >>
> > > > >> [As partes desta mensagem que não continham texto foram removidas]
> > > > >>
> > > > >>
> > > > >>
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > []'s
> > > > > Alfredo Casanova
> > > > > Linux User #228230
> > > > > msn: atcasanova@...
> > > > > tel: +55 61 9655 9619
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > []'s
> > > > Alfredo Casanova
> > > > Linux User #228230
> > > > msn: atcasanova@...
> > > > tel: +55 61 9655 9619
> > > >
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > >
> > > > ------------------------------------
> > > >
> > > > ----------------------------------------------------------
> > > > 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
> > > >
> > > >
> > > >
> > >
> > > --
> > > Tiago B. Peczenyj
> > > Linux User #405772
> > >
> > > http://about.me/peczenyj
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> >
> >
> > --
> > []'s
> > Alfredo Casanova
> > Linux User #228230
> > msn: atcasanova@...
> > tel: +55 61 9655 9619
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> > ------------------------------------
> >
> > ---------------------------------------------------------------------
> > 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
> >
> >
> >
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




reply via email to

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