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

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

Re: [shell-script] Duvida para atribuir valor a variavel


From: phfbettega
Subject: Re: [shell-script] Duvida para atribuir valor a variavel
Date: Sun, 10 Jul 2016 21:15:17 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0

Ah sim então eu tinha entendido :) o 'grep -c' retorna o número de linhas 
casadas,
não importa o número de casamentos por linha.
A opção -o retorna cada cadeia pesquisada, uma por uma linha.
Até aí estamos entendidos :)

Pelo que o Rodrigo postou, ele quer contar o número de linhas da saída
de um grep 'simples' sem opções
varerror=$((cat ../var/error.log |grep $DATA | wc -l))

então eu pensei que ele poderia usar a opção -c
$ grep a <<<abracadabra
abracadabra
$ grep a <<<abracadabra | wc -l
1
$ grep -c a <<<abracadabra
1

nesse caso 'grep $DATA /var/error.log | wc -l' deve retornar o mesmo que
'grep -c $DATA /var/error.log' , ou não? Mestre, se vc responder 'não' vou 
precisar
de um desenho rs
Abraços Paulo Bettega


On 10-07-2016 19:49, 'Julio C. Neves' address@hidden [shell-script] wrote:


Fala Paulo, o grep -c não mostra a linha, mostra só o número de linhas que 
possuem a cadeia pesquisada.

Se a cadeia puder ocorrer mais de uma vez na linha, o correto seria fazer:
grep -o REGEX ARQUIVO | wc -l

Como estou no celular, não dá para mostrar, mas experimente fazer:

grep -c a <<< abracadabra

E depois:

grep -o a  <<< abracadabra | wc -l

Em 10 de jul de 2016 19:05, "address@hidden <mailto:address@hidden> 
[shell-script]"
<address@hidden <mailto:address@hidden>> escreveu:



Olá mestre Julio, não entendi :) nesse caso de uma linha possuir mais de uma 
data,
o 'grep -c' vai somar cada casamento ao invés de considerar uma linha?
A saída normal do grep, mesmo que haja dois casamentos na mesma linha, é mostrar
apenas uma vez a linha, não? Agora fiquei na dúvida rs vou pegar um arquivo aqui
pra testar.
Abraços Paulo Bettega


On 10-07-2016 00:10, 'Julio C. Neves' address@hidden <mailto:address@hidden> 
[shell-script] wrote:
>
>
> Fala Paulo,
> A opção -c devolve a qtd de linha que têm a cadeia. Assim sendo, se alguma 
linha possuir mais de uma data,
> dará zebra.
>
> Em 9 de jul de 2016 22:02, "address@hidden <mailto:address@hidden>
<mailto:address@hidden <mailto:address@hidden>> [shell-script]"
> <address@hidden <mailto:address@hidden>
<mailto:address@hidden <mailto:address@hidden>>> escreveu:
>
> __

>
>
> Olá Rodrigo, mais um pitaco, se for só pra pegar o número de linhas, o grep
> tem a opçao -c que retorna o número de linhas casadas por arquivo.
> Pelo que vc postou a pesquisa é só em um arquivo então "grep -c $DATA 
/var/error.log"
> deve resultar o mesmo que "grep $DATA /var/error.log | wc -l"
>
> Abraços Paulo Bettega
>
> On 09-07-2016 18:39, Rodrigo Cunha address@hidden <mailto:address@hidden>
<mailto:address@hidden <mailto:address@hidden>>

> [shell-script] wrote:
> >
> >
> > srs.
> > tenho um script com a variavel DATA:
> > DATA=`/bin/date +%Y%m%d`
> > e quero criar uma outra variavel utilizando uma pipeline que "grepa" o 
valor da variavel $DATA em um
> arquivo.
> > Testei da forma abaixo mas não consegui, alguém sabe como fazer isso?!
> >
> > varerror=$((cat ../var/error.log |grep $DATA | wc -l))
> >
> >
> > --
> > Atenciosamente,
> > Rodrigo da Silva Cunha
> >
> >
> > ----------------------------------------------------------
> > Enviado por: Rodrigo Cunha <address@hidden <mailto:address@hidden>
<mailto:address@hidden <mailto:address@hidden>>>
> > ----------------------------------------------------------
>
>
> ----------------------------------------------------------
> Enviado por: "Julio C. Neves" <address@hidden <mailto:address@hidden>>
> ----------------------------------------------------------


reply via email to

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