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

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

Re: [shell-script] wc -l contando linhas errado?


From: Julio C. Neves
Subject: Re: [shell-script] wc -l contando linhas errado?
Date: Wed, 6 Feb 2013 17:23:10 -0200

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 <http://www.fuctura.com.br/cursos/curso-de-shell-scripts/>
para mais  detalhes.
@juliobash




Em 6 de fevereiro de 2013 16:22, Alfredo Casanova
<address@hidden>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 <address@hidden>
>
> > **
> >
> >
> > O que importa é que resolve o seu problema. ;-)
> >
> > 2013/2/6 Alfredo Casanova address@hidden>
> >
> >
> > > 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 address@hidden>
> > >
> > > > 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 address@hidden>
> > > >
> > > >> **
> >
> > > >>
> > > >>
> > > >> 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 address@hidden>
> > > >>
> > > >>
> > > >> > 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 address@hidden>
> > > >> >
> > > >> > > **
> > > >>
> > > >> > >
> > > >> > >
> > > >> > > 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
> > > >> > > address@hidden>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 address@hidden>
> > > >> > > >
> > > >> > > > > **
> > > >> > > > >
> > > >> > > > >
> > > >> > > > > 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: address@hidden
> > > >> > > > > 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: address@hidden
> > > >> > 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: address@hidden
> > > > tel: +55 61 9655 9619
> > > >
> > >
> > >
> > >
> > > --
> > > []'s
> > > Alfredo Casanova
> > > Linux User #228230
> > > msn: address@hidden
> > > 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: address@hidden
> 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]