Contagem de Linhas de um Arquivo onde Existem Varios [RESOLVIDO]

1. Contagem de Linhas de um Arquivo onde Existem Varios [RESOLVIDO]

Arthur Coscarelli
acoscarelli

(usa Ubuntu)

Enviado em 21/02/2013 - 15:17h

Pessoal .. boa tarde

Alguém teria alguma ideia para esse problema ?

Tenho um diretório onde tenho que contar as linhas dos arquivos.

O problema seria que neste mesmo diretório eu teria mais de um arquivo com o nome parecido e precisaria contar de apenas um arquivo.

EXEMPLO:

E_C_xxxxx.xxxx.xxxx.y.txt
E_C_xxxxx.xxxx.xxxx.a.txt
E_C_xxxxx.xxxx.xxxx.b.txt


Lembrando que estou fazendo uma automatização. preciso que no caso acima ele pegue apenas um E_C_ e conte a quantidade de linhas com o wc -l

E o arquivo teria que ser contado a partir da linha 18 em diante.

Alguem teria alguma sujestão?

grato


  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

Enviado em 22/02/2013 - 15:55h

acoscarelli escreveu:
Neste caso funcionou ambas as scripts ..
O que apanho no caso seria de como armazenar isso em uma variável para eu passar um if depois
EXEMPLO:
i=`sed '1,18d' < `ls E_C* | head -n1` | wc -l`
if [ $i >= 10 ]; then
ou
if [ $i -gt 10]; then
Ambos estão apresentando erros.
quase certeza que esta declarado errado a variavel


Cara, no primeiro if você está usando o operador errado (>=). No segundo if você não deixou o espaço que deveria ter entre o '10' e o ']'. O certo é:

i=$(sed '1,18d' < `ls E_C* | head -n1` | wc -l)
if [ $i -ge 10 ]; then

Outra coisa:
-gt :: GreaterThan (maior que)
-ge :: GreaterEqual (maior ou igual que)

Estude shell-script por aqui:
http://aurelio.net/shell

Fws.

3. Re: Contagem de Linhas de um Arquivo onde Existem Varios [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 21/02/2013 - 17:01h

acoscarelli escreveu:

Pessoal .. boa tarde

Alguém teria alguma ideia para esse problema ?

Tenho um diretório onde tenho que contar as linhas dos arquivos.

O problema seria que neste mesmo diretório eu teria mais de um arquivo com o nome parecido e precisaria contar de apenas um arquivo.

EXEMPLO:

E_C_xxxxx.xxxx.xxxx.y.txt
E_C_xxxxx.xxxx.xxxx.a.txt
E_C_xxxxx.xxxx.xxxx.b.txt


Lembrando que estou fazendo uma automatização. preciso que no caso acima ele pegue apenas um E_C_ e conte a quantidade de linhas com o wc -l

E o arquivo teria que ser contado a partir da linha 18 em diante.

Alguem teria alguma sujestão?

grato


Opa acoscarelli, beleza?

Cara, dando uma breve pesquisada no VOL, me deparei com um caso parecido e o pegando a dica do paulo1205, para pegar a partir da 18ª linha do arquivo, use o sed:


sed '1,18d' E_C_xxxxx.xxxx.xxxx.a.txt


Neste caso, o sed estará ignorando as primeiras 18 linhas do arquivo E_C_xxxxx.xxxx.xxxx.a.txt.

Agora... não entendi bem o seguinte, dentro desse diretório que tem um monte de arquivo, você quer pegar um aleatóriamente? Ou algum específico?

Fonte:
http://www.vivaolinux.com.br/topico/Shell-Script/Ler-Determinada-linha-em-um-arquivo-txt


4. Re: Contagem de Linhas de um Arquivo onde Existem Varios [RESOLVIDO]

Arthur Coscarelli
acoscarelli

(usa Ubuntu)

Enviado em 21/02/2013 - 17:09h

pmartelotta escreveu:

acoscarelli escreveu:

Pessoal .. boa tarde

Alguém teria alguma ideia para esse problema ?

Tenho um diretório onde tenho que contar as linhas dos arquivos.

O problema seria que neste mesmo diretório eu teria mais de um arquivo com o nome parecido e precisaria contar de apenas um arquivo.

EXEMPLO:

E_C_xxxxx.xxxx.xxxx.y.txt
E_C_xxxxx.xxxx.xxxx.a.txt
E_C_xxxxx.xxxx.xxxx.b.txt


Lembrando que estou fazendo uma automatização. preciso que no caso acima ele pegue apenas um E_C_ e conte a quantidade de linhas com o wc -l

E o arquivo teria que ser contado a partir da linha 18 em diante.

Alguem teria alguma sujestão?

grato


Opa acoscarelli, beleza?

Cara, dando uma breve pesquisada no VOL, me deparei com um caso parecido e o pegando a dica do paulo1205, para pegar a partir da 18ª linha do arquivo, use o sed:


sed '1,18d' E_C_xxxxx.xxxx.xxxx.a.txt


Neste caso, o sed estará ignorando as primeiras 18 linhas do arquivo E_C_xxxxx.xxxx.xxxx.a.txt.

Agora... não entendi bem o seguinte, dentro desse diretório que tem um monte de arquivo, você quer pegar um aleatóriamente? Ou algum específico?

Fonte:
http://www.vivaolinux.com.br/topico/Shell-Script/Ler-Determinada-linha-em-um-arquivo-txt



Isso .. eu precisaria que contasse a partir da 18ª linha .. o sed vai resolver meu problema

Sim .. eu quero pegar um aleatório e contar as linhas a partir da 18ª ..

No caso que estou fazendo ele esta contando de todos os arquivo .. e o correto seria de apenas 1 arquivo com o inicio E_C_



5. Re: Contagem de Linhas de um Arquivo onde Existem Varios [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 22/02/2013 - 13:59h

Se pode ser qualquer um, segue um exemplo pegando o primeiro arquivo, usando o 'ls':


sed '1,18d' < `ls E_C* | head -n1` | wc -l


Flws.


6. Re: Contagem de Linhas de um Arquivo onde Existem Varios [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 22/02/2013 - 14:34h

Gostei da idéia deste script! É algo diferente que proporciona o exercício cerebral em Shell :-)
O script são poucas linhas, mas com um raciocínio bacana, usei a variável $RANDOM (que gera números aleatórios no Shell) junto com um delimitador, que é exatamente o número de arquivos que contém na pasta.



#!/bin/bash

NUM_FILE=$(ls -lC1 | grep ^E_C | wc -l)
NUM=`expr $NUM_FILE + 1`
RAND=`echo $((RANDOM % $NUM))`
FILE_RAND=`ls -lC1 | grep ^E_C | head -$RAND | tail -1`

cat $FILE_RAND | sed '1,18d'





7. Re: Contagem de Linhas de um Arquivo onde Existem Varios [RESOLVIDO]

Arthur Coscarelli
acoscarelli

(usa Ubuntu)

Enviado em 22/02/2013 - 15:39h

pmartelotta escreveu:

Se pode ser qualquer um, segue um exemplo pegando o promiro arquivo, usando o 'ls':


sed '1,18d' < `ls E_C* | head -n1` | wc -l


Flws.


Neste caso funcionou ambas as scripts ..

O que apanho no caso seria de como armazenar isso em uma variável para eu passar um if depois

EXEMPLO:

i=`sed '1,18d' < `ls E_C* | head -n1` | wc -l`

if [ $i >= 10 ]; then

ou

if [ $i -gt 10]; then


Ambos estão apresentando erros.

quase certeza que esta declarado errado a variavel


8. Re: Contagem de Linhas de um Arquivo onde Existem Varios [RESOLVIDO]

Alexandre Gonçalves Monteiro da Silva
alexandregms

(usa Ubuntu)

Enviado em 22/02/2013 - 15:44h

acoscarelli escreveu:

O que apanho no caso seria de como armazenar isso em uma variável para eu passar um if depois

EXEMPLO:

i=`sed '1,18d' < `ls E_C* | head -n1` | wc -l`

if [ $i >= 10 ]; then

ou

if [ $i -gt 10]; then


Ambos estão apresentando erros.

quase certeza que esta declarado errado a variavel



Mas vc testou o que te passei? Ele armazena tudo em variável!


9. Re: Contagem de Linhas de um Arquivo onde Existem Varios [RESOLVIDO]

Arthur Coscarelli
acoscarelli

(usa Ubuntu)

Enviado em 22/02/2013 - 15:49h

alexandregms escreveu:

acoscarelli escreveu:

O que apanho no caso seria de como armazenar isso em uma variável para eu passar um if depois

EXEMPLO:

i=`sed '1,18d' < `ls E_C* | head -n1` | wc -l`

if [ $i >= 10 ]; then

ou

if [ $i -gt 10]; then


Ambos estão apresentando erros.

quase certeza que esta declarado errado a variavel



Mas vc testou o que te passei? Ele armazena tudo em variável!


Sim .. testei ... funcionou direitinho ... eu quem estou fazendo confusão

A ideia seria pegar a resposta ( numero de linhas que tem o arquivo ) e comparar com o numero

Exemplo seria:

Executando sua script, com o wc -l no final;

read line
do
if [ $line >= 10]; then.


ai fica dando erro tambem

tem alguma ideia ?






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts